summaryrefslogtreecommitdiff
path: root/event_rpcgen.py
diff options
context:
space:
mode:
authorNiels Provos <provos@gmail.com>2009-07-03 17:25:45 +0000
committerNiels Provos <provos@gmail.com>2009-07-03 17:25:45 +0000
commitbbcc54ef9ce0dbbdf4a26b4bcc43cfb9c4e3bec4 (patch)
tree70d2691d60e7fe731cfdafb50f1e3460823fd5db /event_rpcgen.py
parent37d3e16ce9fe71a7112fd4e35c31629e470dff04 (diff)
downloadlibevent-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-xevent_rpcgen.py29
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'