Mercurial > pidgin.yaz
view src/dbus-analyze-types.py @ 13663:b76c6de0c3b5
[gaim-migrate @ 16065]
Kill a number of trivial UNUSED_VALUE "defects":
CID 155
CID 156
CID 157
CID 158
CID 159
CID 160
CID 161
CID 162
CID 163
CID 165
CID 166
CID 167
CID 173
CID 174
CID 177
committer: Tailor Script <tailor@pidgin.im>
author | Richard Laager <rlaager@wiktel.com> |
---|---|
date | Wed, 19 Apr 2006 05:50:50 +0000 |
parents | 64fadbf3810f |
children |
line wrap: on
line source
# This program takes a C header/source as the input and produces # # with --keyword=enum: the list of all enums # with --keyword=struct: the list of all structs # # the output styles: # # --enum DBUS_POINTER_NAME1, # DBUS_POINTER_NAME2, # DBUS_POINTER_NAME3, # # --list NAME1 # NAME2 # NAME3 # import re import sys options = {} def toprint(match, line): if verbatim: return line else: return pattern % match for arg in sys.argv[1:]: if arg[0:2] == "--": mylist = arg[2:].split("=",1) command = mylist[0] if len(mylist) > 1: options[command] = mylist[1] else: options[command] = None keyword = options.get("keyword", "struct") pattern = options.get("pattern", "%s") verbatim = options.has_key("verbatim") structregexp1 = re.compile(r"^(typedef\s+)?%s\s+\w+\s+(\w+)\s*;" % keyword) structregexp2 = re.compile(r"^(typedef\s+)?%s" % keyword) structregexp3 = re.compile(r"^}\s+(\w+)\s*;") print "/* Generated by %s. Do not edit! */" % sys.argv[0] myinput = iter(sys.stdin) for line in myinput: match = structregexp1.match(line) if match is not None: print toprint(match.group(2), line) continue match = structregexp2.match(line) if match is not None: while True: if verbatim: print line.rstrip() line = myinput.next() match = structregexp3.match(line) if match is not None: print toprint(match.group(1), line) break if line[0] not in [" ", "\t", "{", "\n"]: if verbatim: print line break