summaryrefslogtreecommitdiff
path: root/source4/build/pidl/eparser.pm
diff options
context:
space:
mode:
authorTim Potter <tpot@samba.org>2005-01-23 11:03:20 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:09:07 -0500
commit0a15f3edffb9e2534039f923225a8683fab2b433 (patch)
treed553354c1ceae3a58321250523a068f335382e3d /source4/build/pidl/eparser.pm
parentfa55d52edef723c34d960e455597291c58303cff (diff)
downloadsamba-0a15f3edffb9e2534039f923225a8683fab2b433.tar.gz
samba-0a15f3edffb9e2534039f923225a8683fab2b433.tar.bz2
samba-0a15f3edffb9e2534039f923225a8683fab2b433.zip
r4940: Add a variable to hold a list of typedefs for which we shouldn't generate
a dissector for. A hand written dissector needs to be added to eparser.c for the plugin to link. (This used to be commit d4f7f6b0b41cb572320a5aeaf771c5af2b7bf13d)
Diffstat (limited to 'source4/build/pidl/eparser.pm')
-rw-r--r--source4/build/pidl/eparser.pm21
1 files changed, 20 insertions, 1 deletions
diff --git a/source4/build/pidl/eparser.pm b/source4/build/pidl/eparser.pm
index 71819b47d2..aa80e4d50c 100644
--- a/source4/build/pidl/eparser.pm
+++ b/source4/build/pidl/eparser.pm
@@ -22,6 +22,13 @@ sub pidl($)
}
#####################################################################
+# a list of annotations
+
+my $nopull_typedefs = {
+# "policy_handle" => "1",
+};
+
+#####################################################################
# work out is a parse function should be declared static or not
sub fn_prefix($)
{
@@ -462,7 +469,7 @@ sub RewriteC($$$)
# Read through file
- my $cur_fn;
+ my $cur_fn = "";
while(<IN>) {
@@ -505,6 +512,18 @@ sub RewriteC($$$)
$cur_fn = $1, if /NTSTATUS ndr_pull_(.*?)\(struct/;
+ # Skip functions we have marked as nopull
+
+ my $skip_fn = 0;
+
+ foreach my $f (keys(%{$nopull_typedefs})) {
+ $skip_fn = 1, if $cur_fn eq $f;
+ }
+
+ $cur_fn = "", if /^}/;
+
+ next, if $skip_fn;
+
#
# OK start wrapping the ndr_pull functions that actually
# implement the NDR decoding routines. This mainly consists