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