summaryrefslogtreecommitdiff
path: root/source4/build
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2005-08-21 13:19:36 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:34:15 -0500
commit9796ba264ca1ad8a7ec178ecfec6331d4cac4349 (patch)
tree35424ddd9e0b22296882b7aa6aa971b4bd124b4d /source4/build
parent375d11ac788af6e0d9b95cfce9dcbe54024d7505 (diff)
downloadsamba-9796ba264ca1ad8a7ec178ecfec6331d4cac4349.tar.gz
samba-9796ba264ca1ad8a7ec178ecfec6331d4cac4349.tar.bz2
samba-9796ba264ca1ad8a7ec178ecfec6331d4cac4349.zip
r9445: Support flags, add DATA_BLOB support
(This used to be commit cb5b23f0382ea7e242248cdfbbed82bc4eedfe42)
Diffstat (limited to 'source4/build')
-rw-r--r--source4/build/pidl/Parse/Pidl/Samba/TDR.pm14
1 files changed, 14 insertions, 0 deletions
diff --git a/source4/build/pidl/Parse/Pidl/Samba/TDR.pm b/source4/build/pidl/Parse/Pidl/Samba/TDR.pm
index fb9dd0daea..b9bfd83e41 100644
--- a/source4/build/pidl/Parse/Pidl/Samba/TDR.pm
+++ b/source4/build/pidl/Parse/Pidl/Samba/TDR.pm
@@ -50,6 +50,13 @@ sub ParserElement($$$)
$name = ", \"$e->{NAME}\"$array";
}
+ if (has_property($e, "flag")) {
+ pidl "{";
+ indent;
+ pidl "uint32_t saved_flags = tdr->flags;";
+ pidl "tdr->flags |= $e->{PROPERTIES}->{flag};";
+ }
+
if (has_property($e, "charset")) {
fatal($e,"charset() on non-array element") unless (defined($e->{ARRAY_LEN}) and scalar(@{$e->{ARRAY_LEN}}) > 0);
@@ -59,6 +66,7 @@ sub ParserElement($$$)
return;
}
+
if (has_property($e, "switch_is")) {
$switch = ", " . ParseExpr($e->{PROPERTIES}->{switch_is}, $env);
}
@@ -82,6 +90,12 @@ sub ParserElement($$$)
pidl "TDR_CHECK(tdr_$t\_$e->{TYPE}(tdr$name$switch, &v->$e->{NAME}$array));";
if ($array) { deindent; pidl "}"; }
+
+ if (has_property($e, "flag")) {
+ pidl "tdr->flags = saved_flags;";
+ deindent;
+ pidl "}";
+ }
}
sub ParserStruct($$$$)