diff options
| author | Jelmer Vernooij <jelmer@samba.org> | 2005-12-13 01:56:04 +0000 | 
|---|---|---|
| committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:47:18 -0500 | 
| commit | 5352b3892832ca4055dd01a19b2093b4902dfd4c (patch) | |
| tree | b7888a2908f87a40c86800d260529a6cd529b10d /source4/pidl/lib/Parse/Pidl | |
| parent | b0acabca58b8fb783a723e72a325428fb5299992 (diff) | |
| download | samba-5352b3892832ca4055dd01a19b2093b4902dfd4c.tar.gz samba-5352b3892832ca4055dd01a19b2093b4902dfd4c.tar.bz2 samba-5352b3892832ca4055dd01a19b2093b4902dfd4c.zip  | |
r12205: Support 'TFS' command in conformance files
(This used to be commit 3241ce7ad75a2f91327815374ad698e8bedb2e73)
Diffstat (limited to 'source4/pidl/lib/Parse/Pidl')
| -rw-r--r-- | source4/pidl/lib/Parse/Pidl/Ethereal/Conformance.pm | 22 | ||||
| -rw-r--r-- | source4/pidl/lib/Parse/Pidl/Ethereal/NDR.pm | 9 | 
2 files changed, 28 insertions, 3 deletions
diff --git a/source4/pidl/lib/Parse/Pidl/Ethereal/Conformance.pm b/source4/pidl/lib/Parse/Pidl/Ethereal/Conformance.pm index 1b550ae1e7..12eb718586 100644 --- a/source4/pidl/lib/Parse/Pidl/Ethereal/Conformance.pm +++ b/source4/pidl/lib/Parse/Pidl/Ethereal/Conformance.pm @@ -70,6 +70,10 @@ Change description for the specified header field. `field' is the hf name of the  Code to insert when generating the specified dissector. @HF@ and   @PARAM@ will be substituted. +=item I<TFS> hf_name "true string" "false string" + +Override the text shown when a bitmap boolean value is enabled or disabled. +  =back  =head1 EXAMPLE @@ -125,12 +129,27 @@ sub handle_type($$$$$$$$$$)  	};  } +sub handle_tfs($$$$$) +{ +	my ($pos,$data,$hf,$trues,$falses) = @_; + +	unless(defined($falses)) { +		print "$pos: error: incomplete TFS command\n"; +		return; +	} + +	$data->{tfs}->{$hf} = { +		TRUE_STRING => $trues, +		FALSE_STRING => $falses +	}; +} +  sub handle_hf_rename($$$$)  {  	my ($pos,$data,$old,$new) = @_;  	unless(defined($new)) { -		print "$pos: error incomplete HF_RENAME command\n"; +		print "$pos: error: incomplete HF_RENAME command\n";  		return;  	} @@ -272,6 +291,7 @@ my %field_handlers = (  	PARAM_VALUE => \&handle_param_value,   	HF_FIELD => \&handle_hf_field,   	HF_RENAME => \&handle_hf_rename,  +	TFS => \&handle_tfs,  	STRIP_PREFIX => \&handle_strip_prefix,  	PROTOCOL => \&handle_protocol,  	FIELD_DESCRIPTION => \&handle_fielddescription, diff --git a/source4/pidl/lib/Parse/Pidl/Ethereal/NDR.pm b/source4/pidl/lib/Parse/Pidl/Ethereal/NDR.pm index 40767ef535..7dc94763ea 100644 --- a/source4/pidl/lib/Parse/Pidl/Ethereal/NDR.pm +++ b/source4/pidl/lib/Parse/Pidl/Ethereal/NDR.pm @@ -203,8 +203,13 @@ sub Bitmap($$$)  		register_hf_field($hf_bitname, field2name($en), $filtername, "FT_BOOLEAN", $e->{ALIGN} * 8, "TFS(&$name\_$en\_tfs)", $ev, "");  		pidl_def "static const true_false_string $name\_$en\_tfs = {"; -		pidl_def "   \"$en is SET\","; -		pidl_def "   \"$en is NOT SET\","; +		if (defined($conformance->{tfs}->{$hf_bitname})) { +			pidl_def "   $conformance->{tfs}->{$hf_bitname}->{TRUE_STRING},"; +			pidl_def "   $conformance->{tfs}->{$hf_bitname}->{FALSE_STRING},"; +		} else { +			pidl_def "   \"$en is SET\","; +			pidl_def "   \"$en is NOT SET\","; +		}  		pidl_def "};";  		pidl_code "proto_tree_add_boolean(tree, $hf_bitname, tvb, offset-$e->{ALIGN}, $e->{ALIGN}, flags);";  | 
