mirror of
https://github.com/python/cpython.git
synced 2024-12-01 11:15:56 +01:00
aaab30e00c
(with one small bugfix in bgen/bgen/scantools.py) This replaces string module functions with string methods for the stuff in the Tools directory. Several uses of string.letters etc. are still remaining.
49 lines
1.1 KiB
Python
Executable File
49 lines
1.1 KiB
Python
Executable File
#! /usr/bin/env python
|
|
|
|
# Add some standard cpp magic to a header file
|
|
|
|
import sys
|
|
|
|
def main():
|
|
args = sys.argv[1:]
|
|
for file in args:
|
|
process(file)
|
|
|
|
def process(file):
|
|
try:
|
|
f = open(file, 'r')
|
|
except IOError, msg:
|
|
sys.stderr.write('%s: can\'t open: %s\n' % (file, str(msg)))
|
|
return
|
|
data = f.read()
|
|
f.close()
|
|
if data[:2] <> '/*':
|
|
sys.stderr.write('%s does not begin with C comment\n' % file)
|
|
return
|
|
try:
|
|
f = open(file, 'w')
|
|
except IOError, msg:
|
|
sys.stderr.write('%s: can\'t write: %s\n' % (file, str(msg)))
|
|
return
|
|
sys.stderr.write('Processing %s ...\n' % file)
|
|
magic = 'Py_'
|
|
for c in file:
|
|
if ord(c)<=0x80 and c.isalnum():
|
|
magic = magic + c.upper()
|
|
else: magic = magic + '_'
|
|
sys.stdout = f
|
|
print '#ifndef', magic
|
|
print '#define', magic
|
|
print '#ifdef __cplusplus'
|
|
print 'extern "C" {'
|
|
print '#endif'
|
|
print
|
|
f.write(data)
|
|
print
|
|
print '#ifdef __cplusplus'
|
|
print '}'
|
|
print '#endif'
|
|
print '#endif /*', '!'+magic, '*/'
|
|
|
|
main()
|