svn commit: samba r4557 - in branches/SAMBA_4_0/source: build/pidl
librpc/ndr
metze at samba.org
metze at samba.org
Thu Jan 6 07:29:56 GMT 2005
Author: metze
Date: 2005-01-06 07:29:55 +0000 (Thu, 06 Jan 2005)
New Revision: 4557
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=4557
Log:
support for [flags()] on typedef enum|bitmap
NDR_PAHEX is handled by ndr_print_enum() now
metze
Modified:
branches/SAMBA_4_0/source/build/pidl/parser.pm
branches/SAMBA_4_0/source/librpc/ndr/ndr_basic.c
Changeset:
Modified: branches/SAMBA_4_0/source/build/pidl/parser.pm
===================================================================
--- branches/SAMBA_4_0/source/build/pidl/parser.pm 2005-01-06 07:22:47 UTC (rev 4556)
+++ branches/SAMBA_4_0/source/build/pidl/parser.pm 2005-01-06 07:29:55 UTC (rev 4557)
@@ -817,9 +817,8 @@
my($enum) = shift;
my($type_fn) = util::enum_type_fn($enum);
- start_flags($enum);
-
pidl "\t$type_fn v;\n";
+ start_flags($enum);
pidl "\tNDR_CHECK(ndr_pull_$type_fn(ndr, &v));\n";
pidl "\t*r = v;\n";
@@ -832,10 +831,10 @@
{
my($enum) = shift;
- start_flags($enum);
-
pidl "\tconst char *val = NULL;\n\n";
+ start_flags($enum);
+
pidl "\tswitch (r) {\n";
my $els = \@{$enum->{ELEMENTS}};
foreach my $i (0 .. $#{$els}) {
@@ -874,9 +873,8 @@
my($bitmap) = shift;
my($type_fn) = util::bitmap_type_fn($bitmap);
- start_flags($bitmap);
-
pidl "\t$type_fn v;\n";
+ start_flags($bitmap);
pidl "\tNDR_CHECK(ndr_pull_$type_fn(ndr, &v));\n";
pidl "\t*r = v;\n";
Modified: branches/SAMBA_4_0/source/librpc/ndr/ndr_basic.c
===================================================================
--- branches/SAMBA_4_0/source/librpc/ndr/ndr_basic.c 2005-01-06 07:22:47 UTC (rev 4556)
+++ branches/SAMBA_4_0/source/librpc/ndr/ndr_basic.c 2005-01-06 07:29:55 UTC (rev 4557)
@@ -1002,7 +1002,11 @@
void ndr_print_enum(struct ndr_print *ndr, const char *name, const char *type,
const char *val, uint_t value)
{
- ndr->print(ndr, "%-25s: %s (%d)", name, val?val:"UNKNOWN_ENUM_VALUE", value);
+ if (ndr->flags & LIBNDR_PRINT_ARRAY_HEX) {
+ ndr->print(ndr, "%-25s: %s (0x%X)", name, val?val:"UNKNOWN_ENUM_VALUE", value);
+ } else {
+ ndr->print(ndr, "%-25s: %s (%d)", name, val?val:"UNKNOWN_ENUM_VALUE", value);
+ }
}
void ndr_print_bitmap_flag(struct ndr_print *ndr, size_t size, const char *flag_name, uint_t flag, uint_t value)
More information about the samba-cvs
mailing list