summaryrefslogtreecommitdiff
path: root/sys/src/cmd/python/Tools/scripts/fixheader.py
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@localhost>2011-05-03 11:25:13 +0000
committercinap_lenrek <cinap_lenrek@localhost>2011-05-03 11:25:13 +0000
commit458120dd40db6b4df55a4e96b650e16798ef06a0 (patch)
tree8f82685be24fef97e715c6f5ca4c68d34d5074ee /sys/src/cmd/python/Tools/scripts/fixheader.py
parent3a742c699f6806c1145aea5149bf15de15a0afd7 (diff)
add hg and python
Diffstat (limited to 'sys/src/cmd/python/Tools/scripts/fixheader.py')
-rwxr-xr-xsys/src/cmd/python/Tools/scripts/fixheader.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/sys/src/cmd/python/Tools/scripts/fixheader.py b/sys/src/cmd/python/Tools/scripts/fixheader.py
new file mode 100755
index 000000000..1bf5c526b
--- /dev/null
+++ b/sys/src/cmd/python/Tools/scripts/fixheader.py
@@ -0,0 +1,49 @@
+#! /usr/bin/env python
+
+# Add some standard cpp magic to a header file
+
+import sys
+
+def main():
+ args = sys.argv[1:]
+ for filename in args:
+ process(filename)
+
+def process(filename):
+ try:
+ f = open(filename, 'r')
+ except IOError, msg:
+ sys.stderr.write('%s: can\'t open: %s\n' % (filename, str(msg)))
+ return
+ data = f.read()
+ f.close()
+ if data[:2] <> '/*':
+ sys.stderr.write('%s does not begin with C comment\n' % filename)
+ return
+ try:
+ f = open(filename, 'w')
+ except IOError, msg:
+ sys.stderr.write('%s: can\'t write: %s\n' % (filename, str(msg)))
+ return
+ sys.stderr.write('Processing %s ...\n' % filename)
+ magic = 'Py_'
+ for c in filename:
+ if ord(c)<=0x80 and c.isalnum():
+ magic = magic + c.upper()
+ 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, '*/'
+
+if __name__ == '__main__':
+ main()