summaryrefslogtreecommitdiff
path: root/source4/build/pidl
diff options
context:
space:
mode:
authorTim Potter <tpot@samba.org>2004-09-04 01:31:02 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:58:32 -0500
commit7c583b2adbe47ac0aa5a7e572707eeab488be8e3 (patch)
tree72004cc9103010f1674af9f9469a84532ce8c8ff /source4/build/pidl
parent26abe13ff7ed5cb3c58e6aef91a3a0632a4be3a9 (diff)
downloadsamba-7c583b2adbe47ac0aa5a7e572707eeab488be8e3.tar.gz
samba-7c583b2adbe47ac0aa5a7e572707eeab488be8e3.tar.bz2
samba-7c583b2adbe47ac0aa5a7e572707eeab488be8e3.zip
r2221: Experiment with extra properties for telling the ethereal parser what
to do. There is a patch to the grammar and idl files for this but I won't commit that just yet. (This used to be commit 4e155b966c6027daa34166c7daf30cbff96ff679)
Diffstat (limited to 'source4/build/pidl')
-rw-r--r--source4/build/pidl/eparser.pm20
1 files changed, 13 insertions, 7 deletions
diff --git a/source4/build/pidl/eparser.pm b/source4/build/pidl/eparser.pm
index faaf34fe27..9692a9079f 100644
--- a/source4/build/pidl/eparser.pm
+++ b/source4/build/pidl/eparser.pm
@@ -822,12 +822,18 @@ sub type2ft($)
return "FT_BYTES";
}
-sub type2base($)
+# Determine the display base for an element
+
+sub elementbase($)
{
- my($t) = shift;
+ my($e) = shift;
+
+ if (my $base = util::has_property($e, "display")) {
+ return "BASE_" . uc($base);
+ }
- return "BASE_DEC", if ($t eq "uint32") or ($t eq "uint16") or
- ($t eq "uint8");
+ return "BASE_DEC", if ($e->{TYPE} eq "uint32") or
+ ($e->{TYPE} eq "uint16") or ($e->{TYPE} eq "uint8");
return "BASE_NONE";
}
@@ -857,8 +863,8 @@ sub NeededFunction($)
'name' => field2name($e->{NAME}),
'type' => $e->{TYPE},
'ft' => type2ft($e->{TYPE}),
- 'base' => type2base($e->{TYPE})
- };
+ 'base' => elementbase($e)
+ }, if !defined($needed{"hf_$e->{NAME}_$e->{TYPE}"});
$e->{PARENT} = $fn;
} else {
$needed{"ett_$e->{TYPE}"} = 1;
@@ -887,7 +893,7 @@ sub NeededTypedef($)
'name' => field2name($e->{NAME}),
'type' => $e->{TYPE},
'ft' => type2ft($e->{TYPE}),
- 'base' => type2base($e->{TYPE})
+ 'base' => elementbase($e)
};
$e->{PARENT} = $t->{DATA};