You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

49 lines
1.2 KiB

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