Update to 2.7.3
[profile/ivi/python.git] / Tools / scripts / fixheader.py
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()