| 
									
										
										
										
											1996-11-27 19:52:01 +00:00
										 |  |  | #! /usr/bin/env python | 
					
						
							| 
									
										
										
										
											1994-01-07 11:43:11 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Add some standard cpp magic to a header file | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import sys | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def main(): | 
					
						
							| 
									
										
										
										
											2001-01-17 08:48:39 +00:00
										 |  |  |     args = sys.argv[1:] | 
					
						
							|  |  |  |     for file in args: | 
					
						
							|  |  |  |         process(file) | 
					
						
							| 
									
										
										
										
											1994-01-07 11:43:11 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | def process(file): | 
					
						
							| 
									
										
										
										
											2001-01-17 08:48:39 +00:00
										 |  |  |     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: | 
					
						
							| 
									
										
										
										
											2002-09-11 20:36:02 +00:00
										 |  |  |         if ord(c)<=0x80 and c.isalnum(): | 
					
						
							|  |  |  |             magic = magic + c.upper() | 
					
						
							| 
									
										
										
										
											2001-01-17 08:48:39 +00:00
										 |  |  |         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, '*/' | 
					
						
							| 
									
										
										
										
											1994-01-07 11:43:11 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | main() |