]> granicus.if.org Git - libevent/commitdiff
support #define in .rpc descriptions
authorNiels Provos <provos@gmail.com>
Sun, 26 Nov 2006 16:13:17 +0000 (16:13 +0000)
committerNiels Provos <provos@gmail.com>
Sun, 26 Nov 2006 16:13:17 +0000 (16:13 +0000)
svn:r278

event_rpcgen.py

index b049089ab60806a71ea3a6eb7a3183e0c5a4d076..b8e1f9e606e362daa66a872c1a2df19cdf2ec3d5 100755 (executable)
@@ -18,6 +18,7 @@ line_count = 0
 
 white = re.compile(r'^\s+')
 cppcomment = re.compile(r'\/\/.*$')
+headerdirect = []
 cppdirect = []
 
 # Holds everything that makes a struct
@@ -1224,6 +1225,10 @@ def GetNextStruct(file):
                 cppdirect.append(line)
                 continue
 
+            if re.match(r'^#define', line):
+                headerdirect.append(line)
+                continue
+
             if not re.match(r'^struct %s {$' % _STRUCT_RE,
                             line, re.IGNORECASE):
                 print >>sys.stderr, 'Missing struct on line %d: %s' % (
@@ -1289,6 +1294,12 @@ def HeaderPreamble(name):
         '#ifndef %s\n'
         '#define %s\n\n' ) % (
         name, guard, guard)
+
+    for statement in headerdirect:
+        pre += '%s\n' % statement
+    if headerdirect:
+        pre += '\n'
+
     pre += (
         '#define EVTAG_HAS(msg, member) ((msg)->member##_set == 1)\n'
         '#define EVTAG_ASSIGN(msg, member, args...) '
@@ -1323,8 +1334,8 @@ def BodyPreamble(name):
              '#include <assert.h>\n'
              '#include <event.h>\n\n' )
 
-    for include in cppdirect:
-        pre += '%s\n' % include
+    for statement in cppdirect:
+        pre += '%s\n' % statement
     
     pre += '\n#include "%s"\n\n' % header_file