History

add hg and python

cinap_lenrek committed 15 years ago

Commit 4bb9e221 parent 987265c3706 files · +1228772 −-233Browse files

Showing the changes to sys/src/cmd/python/Tools/scripts/fixheader.py (1 of 3706 files). Show all

Unified · Split

sys/src/cmd/python/Tools/scripts/fixheader.py+49−0
@@ -0,0 +1,49 @@
1+#! /usr/bin/env python
2+
3+# Add some standard cpp magic to a header file
4+
5+import sys
6+
7+def main():
8+ args = sys.argv[1:]
9+ for filename in args:
10+ process(filename)
11+
12+def process(filename):
13+ try:
14+ f = open(filename, 'r')
15+ except IOError, msg:
16+ sys.stderr.write('%s: can\'t open: %s\n' % (filename, str(msg)))
17+ return
18+ data = f.read()
19+ f.close()
20+ if data[:2] <> '/*':
21+ sys.stderr.write('%s does not begin with C comment\n' % filename)
22+ return
23+ try:
24+ f = open(filename, 'w')
25+ except IOError, msg:
26+ sys.stderr.write('%s: can\'t write: %s\n' % (filename, str(msg)))
27+ return
28+ sys.stderr.write('Processing %s ...\n' % filename)
29+ magic = 'Py_'
30+ for c in filename:
31+ if ord(c)<=0x80 and c.isalnum():
32+ magic = magic + c.upper()
33+ else: magic = magic + '_'
34+ sys.stdout = f
35+ print '#ifndef', magic
36+ print '#define', magic
37+ print '#ifdef __cplusplus'
38+ print 'extern "C" {'
39+ print '#endif'
40+ print
41+ f.write(data)
42+ print
43+ print '#ifdef __cplusplus'
44+ print '}'
45+ print '#endif'
46+ print '#endif /*', '!'+magic, '*/'
47+
48+if __name__ == '__main__':
49+ main()