equal
deleted
inserted
replaced
|
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() |