h2py.py bug?

Gabriel Rossetti gabriel.rossetti at arimaz.com
Wed Jun 11 03:21:03 EDT 2008


Gabriel Genellina wrote:
> En Tue, 10 Jun 2008 09:44:13 -0300, Gabriel Rossetti 
> <gabriel.rossetti at arimaz.com> escribió:
>
>> I wanted to use the h2py.py script (Tools/scripts/h2py.py) and it 
>> didn't like char litterals :
>>
>> Skipping: PC_ERROR = ord()
>>
>> where my *.h file contained :
>>
>> #define PC_ERROR '0'
>>
>> I searched the web and found a post with the same error :
>>
>> http://mail.python.org/pipermail/python-list/2005-September/340608.html
>>
>> but it got no replies, I tried the fix and it works. I have the 
>> following questions:
>>
>> 1) Why did it not get any attention, is something wrong with it?
>> 2) If nothing is wrong, did the fix not get applied because a bug 
>> report wasn't filed?
>
> Very probably - bug reports outside the tracker are likely to go 
> unnoticed or forgotten.
>
Ok, I'll file one then.
>> 3) Isn't turning a char literal into the ordinal value not contrary 
>> to what a C programmer had in mind when he/she defined it? I mean if 
>> you define a char literal then in python you would have used a string 
>> value :
>>
>> #define PC_ERROR '0'
>>
>> would become :
>>
>> PC_ERROR = '0'
>>
>> in python, and if you intended to use the char type for an 8 bit 
>> numerical value you would have done :
>>
>> #define PC_ERROR 0x30
>>
>> where 0x30 is the '0' ascii hex value, so shouldn'it the line in the 
>> diff (see the post) be :
>>
>> body = p_char.sub("'\\1'", body)
>>
>> instead of :
>>
>> body = p_char.sub("ord('\\1')", body)
>
> It's not so clear what's the intended usage - chars are also integers 
> in C. (I prefer the current behavior, but certainly it may be wrong in 
> several places).
>
Yes, true, but if you intend to use it as an integer, wouldn't you use a 
numeric value instead of a character literal?




More information about the Python-list mailing list