summaryrefslogtreecommitdiffstats
path: root/tools/fix_tommath_h.tcl
diff options
context:
space:
mode:
authorKevin B Kenny <kennykb@acm.org>2005-05-10 18:33:37 (GMT)
committerKevin B Kenny <kennykb@acm.org>2005-05-10 18:33:37 (GMT)
commit76e3b5eed61a674bce7f9c1e18380842dcff3fbf (patch)
tree2f108341f2c542f48532e6057d79bfa551a4245f /tools/fix_tommath_h.tcl
parent5b510b75ec4a1d6fb55691bcf55dbf4b0b936624 (diff)
downloadtcl-76e3b5eed61a674bce7f9c1e18380842dcff3fbf.zip
tcl-76e3b5eed61a674bce7f9c1e18380842dcff3fbf.tar.gz
tcl-76e3b5eed61a674bce7f9c1e18380842dcff3fbf.tar.bz2
Merged kennykb-numerics-branch back to the head; TIPs 132 and 232
Diffstat (limited to 'tools/fix_tommath_h.tcl')
-rwxr-xr-xtools/fix_tommath_h.tcl54
1 files changed, 54 insertions, 0 deletions
diff --git a/tools/fix_tommath_h.tcl b/tools/fix_tommath_h.tcl
new file mode 100755
index 0000000..92b1f77
--- /dev/null
+++ b/tools/fix_tommath_h.tcl
@@ -0,0 +1,54 @@
+# fixtommath.tcl --
+#
+# Changes to 'tommath.h' to make it conform with Tcl's linking
+# conventions.
+#
+# Copyright (c) 2005 by Kevin B. Kenny. All rights reserved.
+#
+# See the file "license.terms" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+#
+# RCS: @(#) $Id: fix_tommath_h.tcl,v 1.2 2005/05/10 18:35:25 kennykb Exp $
+#
+#----------------------------------------------------------------------
+
+set f [open [lindex $argv 0] r]
+set data [read $f]
+close $f
+
+foreach line [split $data \n] {
+ switch -regexp -- $line {
+ {#define BN_H_} {
+ puts $line
+ puts {}
+ puts "\#ifdef TCL_TOMMATH"
+ puts "\#include <tclTomMath.h>"
+ puts "\#endif"
+ puts "\#ifndef TOMMATH_STORAGE_CLASS"
+ puts "\#define TOMMATH_STORAGE_CLASS extern"
+ puts "\#endif"
+ }
+ {typedef.*mp_digit;} {
+ puts "\#ifndef MP_DIGIT_DECLARED"
+ puts $line
+ puts "\#define MP_DIGIT_DECLARED"
+ puts "\#endif"
+ }
+ {typedef struct} {
+ puts "\#ifndef MP_INT_DECLARED"
+ puts "\#define MP_INT_DECLARED"
+ puts "typedef struct mp_int mp_int;"
+ puts "\#endif"
+ puts "struct mp_int \{"
+ }
+ \}\ mp_int\; {
+ puts "\};"
+ }
+ "^(char|int|void)" {
+ puts "TOMMATH_STORAGE_CLASS $line"
+ }
+ default {
+ puts $line
+ }
+ }
+} \ No newline at end of file