svn commit: samba r10006 - in branches/SAMBA_4_0/source/pidl: . lib/Parse/Pidl/Samba

jelmer at samba.org jelmer at samba.org
Sat Sep 3 17:16:18 GMT 2005


Author: jelmer
Date: 2005-09-03 17:16:18 +0000 (Sat, 03 Sep 2005)
New Revision: 10006

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

Log:
Insert correct header file.

Modified:
   branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba/TDR.pm
   branches/SAMBA_4_0/source/pidl/pidl


Changeset:
Modified: branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba/TDR.pm
===================================================================
--- branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba/TDR.pm	2005-09-03 16:58:44 UTC (rev 10005)
+++ branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba/TDR.pm	2005-09-03 17:16:18 UTC (rev 10006)
@@ -60,7 +60,7 @@
 	if (has_property($e, "charset")) {
 		fatal($e,"charset() on non-array element") unless (defined($e->{ARRAY_LEN}) and scalar(@{$e->{ARRAY_LEN}}) > 0);
 		
-		my $len = @{$e->{ARRAY_LEN}}[0];
+		my $len = ParseExpr(@{$e->{ARRAY_LEN}}[0], $env);
 		if ($len eq "*") { $len = "-1"; }
 		pidl "TDR_CHECK(tdr_$t\_charset(tdr$name, &v->$e->{NAME}, $len, sizeof($e->{TYPE}_t), CH_$e->{PROPERTIES}->{charset}));";
 		return;
@@ -112,6 +112,7 @@
 	}
 
 	my %env = map { $_->{NAME} => "v->$_->{NAME}" } @{$e->{ELEMENTS}};
+	$env{"this"} = "v";
 	ParserElement($_, $t, \%env) foreach (@{$e->{ELEMENTS}});
 	
 	if ($t eq "print") {
@@ -215,6 +216,7 @@
 	pidl "/* autogenerated by pidl */";
 	pidl "#include \"includes.h\"";
 	pidl "#include \"$hdrname\"";
+	pidl "";
 	foreach (@$idl) { ParserInterface($_) if ($_->{TYPE} eq "INTERFACE"); }	
 	return $ret;
 }
@@ -226,8 +228,6 @@
 	pidl "#ifndef __TDR_$x->{NAME}_HEADER__";
 	pidl "#define __TDR_$x->{NAME}_HEADER__";
 
-	pidl "#include \"$outputdir/$x->{NAME}.h\"";
-	
 	foreach my $e (@{$x->{DATA}}) { 
 		next unless ($e->{TYPE} eq "TYPEDEF"); 
 		next unless has_property($e, "public");
@@ -251,11 +251,14 @@
 	pidl "#endif /* __TDR_$x->{NAME}_HEADER__ */";
 }
 
-sub Header($$)
+sub Header($$$)
 {
-	my ($idl,$outputdir) = @_;
+	my ($idl,$outputdir,$basename) = @_;
 	$ret = "";
 	pidl "/* Generated by pidl */";
+
+	pidl "#include \"$outputdir/$basename.h\"";
+	pidl "";
 	
 	foreach (@$idl) { 
 		HeaderInterface($_, $outputdir) if ($_->{TYPE} eq "INTERFACE"); 

Modified: branches/SAMBA_4_0/source/pidl/pidl
===================================================================
--- branches/SAMBA_4_0/source/pidl/pidl	2005-09-03 16:58:44 UTC (rev 10005)
+++ branches/SAMBA_4_0/source/pidl/pidl	2005-09-03 17:16:18 UTC (rev 10006)
@@ -339,7 +339,7 @@
 
 	if (defined($opt_tdr_header)) {
 		require Parse::Pidl::Samba::TDR;
-		FileSave($tdr_header, Parse::Pidl::Samba::TDR::Header($pidl, $outputdir));
+		FileSave($tdr_header, Parse::Pidl::Samba::TDR::Header($pidl, $outputdir,$basename));
 	}
 
 	if ($opt_template) {



More information about the samba-cvs mailing list