summaryrefslogtreecommitdiffstats
path: root/Tools/scripts/fixheader.py
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1994-01-07 11:43:11 (GMT)
committerGuido van Rossum <guido@python.org>1994-01-07 11:43:11 (GMT)
commit0b7dfbb9b78ca6e8d5fe1239966da248bf8ddd4e (patch)
treeacbd5a5134234a0089738269084530fbc1b4c244 /Tools/scripts/fixheader.py
parenta635b9a6ffac357f1e296f6c6954b5e6280e6eea (diff)
downloadcpython-0b7dfbb9b78ca6e8d5fe1239966da248bf8ddd4e.zip
cpython-0b7dfbb9b78ca6e8d5fe1239966da248bf8ddd4e.tar.gz
cpython-0b7dfbb9b78ca6e8d5fe1239966da248bf8ddd4e.tar.bz2
Initial revision
Diffstat (limited to 'Tools/scripts/fixheader.py')
-rwxr-xr-xTools/scripts/fixheader.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/Tools/scripts/fixheader.py b/Tools/scripts/fixheader.py
new file mode 100755
index 0000000..8f121fa
--- /dev/null
+++ b/Tools/scripts/fixheader.py
@@ -0,0 +1,49 @@
+#! /usr/local/bin/python
+
+# Add some standard cpp magic to a header file
+
+import sys
+import string
+
+def main():
+ args = sys.argv[1:]
+ for file in args:
+ process(file)
+
+def process(file):
+ try:
+ f = open(file, 'r')
+ except IOError, msg:
+ sys.stderr.write('%s: can\'t open: %s\n' % (file, str(msg)))
+ return
+ data = f.read()
+ f.close()
+ if data[:2] <> '/*':
+ sys.stderr.write('%s does not begin with C comment\n' % file)
+ return
+ try:
+ f = open(file, 'w')
+ except IOError, msg:
+ sys.stderr.write('%s: can\'t write: %s\n' % (file, str(msg)))
+ return
+ sys.stderr.write('Processing %s ...\n' % file)
+ magic = 'Py_'
+ for c in file:
+ if c in string.letters + string.digits:
+ magic = magic + string.upper(c)
+ else: magic = magic + '_'
+ sys.stdout = f
+ print '#ifndef', magic
+ print '#define', magic
+ print '#ifdef __cplusplus'
+ print 'extern "C" {'
+ print '#endif'
+ print
+ f.write(data)
+ print
+ print '#ifdef __cplusplus'
+ print '}'
+ print '#endif'
+ print '#endif /*', '!'+magic, '*/'
+
+main()