home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / pyth_os2.zip / python-1.0.2 / Demo / scripts / fixheader.py < prev    next >
Text File  |  1994-01-07  |  998b  |  50 lines

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