r4993: Generate nicer name for enum hf.
authorTim Potter <tpot@samba.org>
Tue, 25 Jan 2005 23:14:46 +0000 (23:14 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:09:12 +0000 (13:09 -0500)
Start work on supporting bitmaps.
(This used to be commit 6f418f14267291bf8637e5dcd7e8ceca4e430314)

source4/build/pidl/eparser.pm

index e437e099d958d6f8a846e34f42d295c6af8200f5..b334a5c467d26a31202ce7b0b4b75e9bf61abf5a 100644 (file)
@@ -288,12 +288,24 @@ sub NeededTypedef($)
        if ($t->{DATA}->{TYPE} eq "ENUM") {
 
            $needed{"hf_$t->{NAME}"} = {
-               'name' => $t->{NAME},
+               'name' => field2name($t->{NAME}),
                'ft' => 'FT_UINT16',
                'base' => 'BASE_DEC',
                'strings' => "VALS($t->{NAME}_vals)"
                };
        }
+
+       if ($t->{DATA}->{TYPE} eq "BITMAP") {
+           foreach my $e (@{$t->{DATA}{ELEMENTS}}) {
+               $e =~ /^(.*?) \( (.*?) \)$/;
+               $needed{"hf_$t->{NAME}_$1"} = {
+                   'name' => "$t->{NAME} $1",
+                   'ft' => "FT_BOOLEAN",
+                   'base' => "32",
+                   'bitmask' => "$2"
+                   };
+           }
+       }
 }
 
 #####################################################################
@@ -766,7 +778,8 @@ sub RewriteC($$$)
        next, if !($x =~ /^hf_/);
        pidl "\t{ &$x,\n";
        $needed{$x}{strings} = "NULL", if !defined($needed{$x}{strings});
-       pidl "\t  { \"$needed{$x}{name}\", \"$x\", $needed{$x}{ft}, $needed{$x}{base}, $needed{$x}{strings}, 0, \"$x\", HFILL }},\n";
+       $needed{$x}{bitmask} = "0", if !defined($needed{$x}{bitmask});
+       pidl "\t  { \"$needed{$x}{name}\", \"$x\", $needed{$x}{ft}, $needed{$x}{base}, $needed{$x}{strings}, $needed{$x}{bitmask}, \"$x\", HFILL }},\n";
     }
 
     pidl "\t};\n\n";