home *** CD-ROM | disk | FTP | other *** search
/ H4CK3R 14 / hacker14.iso / programacao / pythonwin / python.exe / FIXHEADER.PY < prev    next >
Encoding:
Python Source  |  2003-05-13  |  1.2 KB  |  49 lines

  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. main()
  49.