diff options
author | Niels Provos <provos@gmail.com> | 2009-07-03 17:25:45 +0000 |
---|---|---|
committer | Niels Provos <provos@gmail.com> | 2009-07-03 17:25:45 +0000 |
commit | bbcc54ef9ce0dbbdf4a26b4bcc43cfb9c4e3bec4 (patch) | |
tree | 70d2691d60e7fe731cfdafb50f1e3460823fd5db /event_rpcgen.py | |
parent | 37d3e16ce9fe71a7112fd4e35c31629e470dff04 (diff) | |
download | libevent-bbcc54ef9ce0dbbdf4a26b4bcc43cfb9c4e3bec4.tar.gz |
fix preamble of rpcgen-generated files to rely on event2 includes; based on work by jmansion; patch from Zack Weinberg.
svn:r1334
Diffstat (limited to 'event_rpcgen.py')
-rwxr-xr-x | event_rpcgen.py | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/event_rpcgen.py b/event_rpcgen.py index 33842109..255e47e6 100755 --- a/event_rpcgen.py +++ b/event_rpcgen.py @@ -18,6 +18,7 @@ line_count = 0 white = re.compile(r'^\s+') cppcomment = re.compile(r'\/\/.*$') +nonident = re.compile(r'[^a-zA-Z0-9_]') headerdirect = [] cppdirect = [] @@ -1507,11 +1508,10 @@ class CCodeGenerator: pass def GuardName(self, name): - name = '_'.join(name.split('.')) - name = '_'.join(name.split('/')) - guard = '_' + name.upper() + '_' - - return guard + # Use the complete provided path to the input file, with all + # non-identifier characters replaced with underscores, to + # reduce the chance of a collision between guard macros. + return '_' + nonident.sub('_', name).upper() + '_' def HeaderPreamble(self, name): guard = self.GuardName(name) @@ -1523,19 +1523,15 @@ class CCodeGenerator: '#define %s\n\n' ) % ( name, guard, guard) - # insert stdint.h - let's hope everyone has it - pre += ( - '#include <event-config.h>\n' - '#ifdef _EVENT_HAVE_STDINT_H\n' - '#include <stdint.h>\n' - '#endif\n' ) - for statement in headerdirect: pre += '%s\n' % statement if headerdirect: pre += '\n' - pre += '#include <event2/rpc.h>' + pre += ( + '#include <event2/util.h> /* for ev_uint*_t */\n' + '#include <event2/rpc.h>\n' + ) return pre @@ -1548,14 +1544,15 @@ class CCodeGenerator: global _VERSION header_file = '.'.join(name.split('.')[:-1]) + '.gen.h' + slash = header_file.rfind('/') + if slash != -1: + header_file = header_file[slash+1:] pre = ( '/*\n' ' * Automatically generated from %s\n' ' * by %s/%s. DO NOT EDIT THIS FILE.\n' ' */\n\n' ) % (name, _NAME, _VERSION) - pre += ( '#include <sys/types.h>\n' - '#include <sys/time.h>\n' - '#include <stdlib.h>\n' + pre += ( '#include <stdlib.h>\n' '#include <string.h>\n' '#include <assert.h>\n' '#include <event2/event.h>\n' |