svn commit: samba r4865 - in branches/SAMBA_4_0/source/build/pidl: .

tpot at samba.org tpot at samba.org
Thu Jan 20 05:57:05 GMT 2005


Author: tpot
Date: 2005-01-20 05:57:05 +0000 (Thu, 20 Jan 2005)
New Revision: 4865

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=4865

Log:
Fix up subtree name when dissecting unions.  E.g in LSA, The subtree
used to be called something like "Level, R->out.info" but now is called
"Lsa PolicyInformation".

Modified:
   branches/SAMBA_4_0/source/build/pidl/eparser.pm


Changeset:
Modified: branches/SAMBA_4_0/source/build/pidl/eparser.pm
===================================================================
--- branches/SAMBA_4_0/source/build/pidl/eparser.pm	2005-01-20 01:19:57 UTC (rev 4864)
+++ branches/SAMBA_4_0/source/build/pidl/eparser.pm	2005-01-20 05:57:05 UTC (rev 4865)
@@ -584,18 +584,34 @@
 	   \);)
 	    /ndr_pull_$2(ndr, tree, hf_$4, $3);/smgx;
 
-	# Add subtree argument to calls dissecting structures, e.g
+	# Add subtree argument to calls dissecting structures/unions, e.g
 	#
 	# ndr_pull_string(ndr, NDR_SCALARS|NDR_BUFFERS, &r->command);
 	# ndr_pull_atsvc_enum_ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr);
 
-	s/(ndr_pull_([^\)]*?)\(
-	   ndr,\ 
-	   (NDR_[^,]*?),\ 
-	   (&?r->(in|out|)\.?([^\(].*?))\);)
-	    /ndr_pull_$2(ndr, $3, get_subtree(tree, \"$6\", ndr, ett_$2), $4);
-	/smgx;
+        # Three argument version is for structures
 
+        if (/ndr_pull([^\)]*?)\(ndr, (NDR_[^,]*?), ([^,]*?)\);/) {
+
+	    s/(ndr_pull_([^\)]*?)\(
+	       ndr,\ 
+	       (NDR_[^,]*?),\ 
+	       (&?r->(in|out|)\.?([^\(].*?))\);)
+		/ndr_pull_$2(ndr, $3, get_subtree(tree, \"$6\", ndr, ett_$2), $4);
+	    /smgx;
+	}
+
+        # Four argument version if for unions
+
+        if (/ndr_pull([^\)]*?)\(ndr, (NDR_[SB][^,]*?), ([^,]*?), ([^,]*?)\);/) {
+	    s/(ndr_pull_([^\)]*?)\(
+	       ndr,\ 
+	       (NDR_[^,]*?),\ 
+	       (&?r->(in|out|)\.?([^\(].*?))\);)
+		/ndr_pull_$2(ndr, $3, get_subtree(tree, \"$2\", ndr, ett_$2), $4);
+	    /smgx;
+	}
+
 	# Add proto_tree parameter to pull function prototypes, e.g
 	#
 	# static NTSTATUS ndr_pull_atsvc_JobInfo(struct ndr_pull *ndr, 



More information about the samba-cvs mailing list