wafsamba/samba_abi: fix signature parsing for structures
authorAlexander Bokovoy <ab@samba.org>
Thu, 23 Aug 2012 15:44:01 +0000 (18:44 +0300)
committerAlexander Bokovoy <ab@samba.org>
Fri, 7 Sep 2012 10:31:42 +0000 (12:31 +0200)
Signature parsing for structure objects was broken. Existing regexp
was greedingly cutting off additional curly brackets that belonged to
the first and last structure member.

buildtools/wafsamba/samba_abi.py

index 2966d7c1bf8a31e0cae027cbf1b02fbcb1cff9ba..69da7bd9a5f5f4980efc47695c30d5c8e147015f 100644 (file)
@@ -15,8 +15,9 @@ version_key = lambda x: map(int, x.split("."))
 def normalise_signature(sig):
     '''normalise a signature from gdb'''
     sig = sig.strip()
-    sig = re.sub('^\$[0-9]+\s=\s\{*', '', sig)
-    sig = re.sub('\}(\s0x[0-9a-f]+\s<\w+>)?$', '', sig)
+    sig = re.sub('^\$[0-9]+\s=\s\{(.+)\}$', r'\1', sig)
+    sig = re.sub('^\$[0-9]+\s=\s\{(.+)\}(\s0x[0-9a-f]+\s<\w+>)+$', r'\1', sig)
+    sig = re.sub('^\$[0-9]+\s=\s(0x[0-9a-f]+)\s?(<\w+>)?$', r'\1', sig)
     sig = re.sub('0x[0-9a-f]+', '0xXXXX', sig)
     sig = re.sub('", <incomplete sequence (\\\\[a-z0-9]+)>', r'\1"', sig)