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

tpot at samba.org tpot at samba.org
Thu Sep 2 11:54:13 GMT 2004


Author: tpot
Date: 2004-09-02 11:54:13 +0000 (Thu, 02 Sep 2004)
New Revision: 2183

WebSVN: http://websvn.samba.org/websvn/changeset.php?rep=samba&path=/branches/SAMBA_4_0/source/build/pidl&rev=2183&nolog=1

Log:
Tidy up naming of ethereal fields.  The field names are taken from the
structure elements with underscores replaced with spaces and words
capitalised.

Fix small buglet where we confuse the name of the interface with the name
of the idl file.

Just discovered security descriptors don't display property anymore.  )-:

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	2004-09-02 11:26:58 UTC (rev 2182)
+++ branches/SAMBA_4_0/source/build/pidl/eparser.pm	2004-09-02 11:54:13 UTC (rev 2183)
@@ -292,9 +292,9 @@
 	}
 
 	if (util::is_scalar_type($e->{TYPE})) {
-		pidl "\t\tndr_pull_array_$e->{TYPE}(ndr, $ndr_flags, tree, \"$e->{NAME}\", hf_$e->{NAME}_$e->{TYPE}, $var_prefix$e->{NAME}, $size);\n";
+		pidl "\t\tndr_pull_array_$e->{TYPE}(ndr, $ndr_flags, tree, \"" . field2name($e->{NAME}) . "\", hf_$e->{NAME}_$e->{TYPE}, $var_prefix$e->{NAME}, $size);\n";
 	} else {
-		pidl "\t\tndr_pull_array(ndr, $ndr_flags, tree, \"$e->{NAME}\", (void **)$var_prefix$e->{NAME}, sizeof($var_prefix$e->{NAME}\[0]), $size, (ndr_pull_flags_fn_t)ndr_pull_$e->{TYPE});\n";
+		pidl "\t\tndr_pull_array(ndr, $ndr_flags, tree, \"" . field2name($e->{NAME}) . "\", (void **)$var_prefix$e->{NAME}, sizeof($var_prefix$e->{NAME}\[0]), $size, (ndr_pull_flags_fn_t)ndr_pull_$e->{TYPE});\n";
 	}
 
 	pidl "\t}\n";
@@ -379,7 +379,7 @@
 	} elsif (util::is_builtin_type($e->{TYPE})) {
 		pidl "\tndr_pull_$e->{TYPE}(ndr, tree, hf_$e->{NAME}_$e->{TYPE}, $cprefix$var_prefix$e->{NAME});\n";
 	} else {
-		pidl "\tndr_pull_$e->{TYPE}(ndr, $ndr_flags, get_subtree(tree, \"$e->{NAME}\", ndr, ett_$e->{TYPE}), $cprefix$var_prefix$e->{NAME});\n";
+		pidl "\tndr_pull_$e->{TYPE}(ndr, $ndr_flags, get_subtree(tree, \"" . field2name($e->{NAME}) . "\", ndr, ett_$e->{TYPE}), $cprefix$var_prefix$e->{NAME});\n";
 	}
 
 	end_flags($e);
@@ -430,9 +430,9 @@
 	} elsif (util::is_builtin_type($e->{TYPE})) {
 		pidl "\t\tndr_pull_$e->{TYPE}(ndr, tree, hf_$e->{NAME}_$e->{TYPE}, $cprefix$var_prefix$e->{NAME});\n";
 	} elsif ($e->{POINTERS}) {
-		pidl "\t\tndr_pull_$e->{TYPE}(ndr, NDR_SCALARS|NDR_BUFFERS, get_subtree(tree, \"$e->{NAME}\", ndr, ett_$e->{TYPE}), $cprefix$var_prefix$e->{NAME});\n";
+		pidl "\t\tndr_pull_$e->{TYPE}(ndr, NDR_SCALARS|NDR_BUFFERS, get_subtree(tree, \"" . field2name($e->{NAME}) . "\", ndr, ett_$e->{TYPE}), $cprefix$var_prefix$e->{NAME});\n";
 	} else {
-		pidl "\t\tndr_pull_$e->{TYPE}(ndr, $ndr_flags, get_subtree(tree, \"$e->{NAME}\", ndr, ett_$e->{TYPE}), $cprefix$var_prefix$e->{NAME});\n";
+		pidl "\t\tndr_pull_$e->{TYPE}(ndr, $ndr_flags, get_subtree(tree, \"" . field2name($e->{NAME}) . "\", ndr, ett_$e->{TYPE}), $cprefix$var_prefix$e->{NAME});\n";
 	}
 
 	if (util::need_wire_pointer($e)) {
@@ -831,6 +831,19 @@
     return "BASE_NONE";
 }
 
+# Convert a IDL structure field name (e.g access_mask) to a prettier
+# string like 'Access Mask'.
+
+sub field2name($)
+{
+    my($field) = shift;
+
+    $field =~ s/_/ /g;		# Replace underscores with spaces
+    $field =~ s/(\w+)/\u\L$1/g;	# Capitalise each word
+    
+    return $field;
+}
+
 sub NeededFunction($)
 {
 	my $fn = shift;
@@ -841,7 +854,7 @@
 
 		if (util::is_scalar_type($e->{TYPE})) {
 		    $needed{"hf_$e->{NAME}_$e->{TYPE}"} = {
-			'name' => $e->{NAME},
+			'name' => field2name($e->{NAME}),
 			'type' => $e->{TYPE},
 			'ft'   => type2ft($e->{TYPE}),
 			'base' => type2base($e->{TYPE})
@@ -871,7 +884,7 @@
 		if (util::is_scalar_type($e->{TYPE})) {
 		
 		    $needed{"hf_$e->{NAME}_$e->{TYPE}"} = {
-			'name' => $e->{NAME},
+			'name' => field2name($e->{NAME}),
 			'type' => $e->{TYPE},
 			'ft'   => type2ft($e->{TYPE}),
 			'base' => type2base($e->{TYPE})
@@ -944,8 +957,6 @@
 
 	pidl "/* parser auto-generated by pidl */\n\n";
 
-	pidl "#include \"ndr_$module.h\"\n\n";
-
 	foreach my $x (@{$idl}) {
 	    if ($x->{TYPE} eq "INTERFACE") { 
 		foreach my $d (@{$x->{DATA}}) {



More information about the samba-cvs mailing list