This bit me (again?) today so I've checked in your proposed text 
(modified slightly): rev 22293.

Jaap Keuter wrote:
> Hi,
> 
> Reading from README.developer it states:
> <quote>
> For proto_tree_add_boolean(), the 'value' argument is a 32-bit integer;
> zero means "false", and non-zero means "true".
> </quote>
> That is misleading. You have to take into account the field info to
> determine the interpretation of this value (see epan/proto.c :
> proto_tree_set_uint() ). You can define a mask of the relevant bit(s) and
> this will be applied (mask AND shift) before adding the value to the tree.
> So how about this text for README.developer:
> <quote>
> For proto_tree_add_boolean(), the 'value' argument is a 32-bit integer.
> It is masked and shifted as defined by the field info, then zero means
> "false", and non-zero means "true".
> </quote>
> 
> Thanx,
> Jaap
> 
> On Mon, 26 Feb 2007, Hal Lander wrote:
> 
>> Steve,
>>
>> Its more what the documentation does not say that caused me the problem.
>>
>> The function is called 'add_boolean' and it has a parameter 'value'.
>> I had assumed, incorrectly, that 'value' would be a 1 or a 0.
>> It is not, it is the value of the packet byte that requires to be masked and
>> shifted to get the boolean. It would be helpful if the documentation defined
>> 'value' more explicitly.
>>
>> Also Wireshark has functions which do the masking and shifting to get the
>> boolean value.
>> It would be helpful if these functions were exposed in the API so that
>> dissector writers can use them. If I want to find the actual boolean value
>> of the field I have to write my own functions for masking and shifting. That
>> is not a big issue, but it is duplicating existing code, requires testing
>> and is another source of bugs - better to use the Wireshark functions if
>> they could be made available.
>>
>> I hope this is helpful, the effort required to generate documentation is
>> much appreciated and how Wireshark works is gradually starting to clik into
>> place in my mind.
>>
>> Hal.
>>
>>
>>> From: Stephen Fisher <[EMAIL PROTECTED]>
>>> Reply-To: Developer support list for Wireshark
>>> <[email protected]>
>>> To: Developer support list for Wireshark <[email protected]>
>>> Subject: Re: [Wireshark-dev] What do you use to get a boolean
>>> Date: Wed, 21 Feb 2007 23:25:44 -0800
>>>
>>> On Mon, Feb 12, 2007 at 06:15:43AM -0900, Hal Lander wrote:
>>>> It does look like the value you pass to
>>>> proto_tree_add_boolean(tree, id, tvb, start, length, value);
>>>> is not a 1 or a 0 it is the raw data byte containing the boolean at the
>>>> position defined by the mask.
>>>>
>>>> If I am correct this makes the documentation a bit missleading.
>>> As Guy said, you have to do the masking yourself.  What part of the
>>> documentation did you find misleading?  I ask so that we can take a look
>>> at improving it.
>>>
>>>
>>> Steve
>>>
>>> _______________________________________________
>>> Wireshark-dev mailing list
>>> [email protected]
>>> http://www.wireshark.org/mailman/listinfo/wireshark-dev
>> _________________________________________________________________
>> Play Flexicon: the crossword game that feeds your brain. PLAY now for FREE.�
>>   http://zone.msn.com/en/flexicon/default.htm?icid=flexicon_hmtagline
>>
>>
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Wireshark-dev mailing list
> [email protected]
> http://www.wireshark.org/mailman/listinfo/wireshark-dev
_______________________________________________
Wireshark-dev mailing list
[email protected]
http://www.wireshark.org/mailman/listinfo/wireshark-dev

Reply via email to