Rev 11530: Support different variables in environments. in file:///home/jelmer/bzr.samba/SAMBA_4_0/

Jelmer Vernooij jelmer at samba.org
Sun Feb 18 23:55:22 GMT 2007


At file:///home/jelmer/bzr.samba/SAMBA_4_0/

------------------------------------------------------------
revno: 11530
revision-id: jelmer at samba.org-20070218235514-ziine4dmb38u0xv3
parent: svn-v2:21438 at 0c0555d6-39d7-0310-84fc-f1cc0bd64818-branches%2fSAMBA_4_0
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: SAMBA_4_0
timestamp: Mon 2007-02-19 00:55:14 +0100
message:
  Support different variables in environments.
modified:
  source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm svn-v2:12463 at 0c0555d6-39d7-0310-84fc-f1cc0bd64818-branches%2fSAMBA_4_0-source%2fpidl%2flib%2fParse%2fPidl%2fSamba4%2fNDR%2fParser.pm
  source/pidl/tests/samba-ndr.pl svn-v2:20637 at 0c0555d6-39d7-0310-84fc-f1cc0bd64818-branches%2fSAMBA_4_0-source%2fpidl%2ftests%2fsamba%2dndr.pl
=== modified file 'source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm'
--- a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm	2007-02-18 18:44:56 +0000
+++ b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm	2007-02-18 23:55:14 +0000
@@ -216,16 +216,16 @@
 	}
 }
 
-sub GenerateStructEnv($)
+sub GenerateStructEnv($$)
 {
-	my $x = shift;
+	my ($x, $v) = @_;
 	my %env;
 
 	foreach my $e (@{$x->{ELEMENTS}}) {
-		$env{$e->{NAME}} = "r->$e->{NAME}";
+		$env{$e->{NAME}} = "$v->$e->{NAME}";
 	}
 
-	$env{"this"} = "r";
+	$env{"this"} = $v;
 
 	return \%env;
 }
@@ -1198,7 +1198,7 @@
 	
 	return unless defined($struct->{ELEMENTS});
 
-	my $env = GenerateStructEnv($struct);
+	my $env = GenerateStructEnv($struct, "r");
 
 	EnvSubstituteValue($env, $struct);
 
@@ -1440,7 +1440,7 @@
 
 	return unless defined $struct->{ELEMENTS};
 
-	my $env = GenerateStructEnv($struct);
+	my $env = GenerateStructEnv($struct, "r");
 
 	EnvSubstituteValue($env, $struct);
 
@@ -1521,7 +1521,7 @@
 
 	return unless defined $struct->{ELEMENTS};
 
-	my $env = GenerateStructEnv($struct);
+	my $env = GenerateStructEnv($struct, "r");
 
 	# declare any internal pointers we need
 	foreach my $e (@{$struct->{ELEMENTS}}) {

=== modified file 'source/pidl/tests/samba-ndr.pl'
--- a/source/pidl/tests/samba-ndr.pl	2007-02-18 16:21:28 +0000
+++ b/source/pidl/tests/samba-ndr.pl	2007-02-18 23:55:14 +0000
@@ -4,7 +4,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 31;
+use Test::More tests => 32;
 use FindBin qw($RealBin);
 use lib "$RealBin";
 use Util;
@@ -156,22 +156,29 @@
 is_deeply({ }, GenerateFunctionInEnv($fn));
 
 $fn = { ELEMENTS => [ { NAME => "foo" }, { NAME => "bar" } ] };
-is_deeply({ foo => "r->foo", bar => "r->bar", this => "r" }, GenerateStructEnv($fn));
+is_deeply({ foo => "r->foo", bar => "r->bar", this => "r" }, 
+		GenerateStructEnv($fn, "r"));
+
+$fn = { ELEMENTS => [ { NAME => "foo" }, { NAME => "bar" } ] };
+is_deeply({ foo => "some->complex.variable->foo", 
+		    bar => "some->complex.variable->bar", 
+			this => "some->complex.variable" }, 
+		GenerateStructEnv($fn, "some->complex.variable"));
 
 $fn = { ELEMENTS => [ { NAME => "foo", PROPERTIES => { value => 3 }} ] };
 
-my $env = GenerateStructEnv($fn);
+my $env = GenerateStructEnv($fn, "r");
 EnvSubstituteValue($env, $fn);
 is_deeply($env, { foo => 3, this => "r" });
 
 $fn = { ELEMENTS => [ { NAME => "foo" }, { NAME => "bar" } ] };
-$env = GenerateStructEnv($fn);
+$env = GenerateStructEnv($fn, "r");
 EnvSubstituteValue($env, $fn);
 is_deeply($env, { foo => 'r->foo', bar => 'r->bar', this => "r" });
 
 $fn = { ELEMENTS => [ { NAME => "foo", PROPERTIES => { value => 0 }} ] };
 
-$env = GenerateStructEnv($fn);
+$env = GenerateStructEnv($fn, "r");
 EnvSubstituteValue($env, $fn);
 is_deeply($env, { foo => 0, this => "r" });
 



More information about the samba-cvs mailing list