En Tue, 10 Jun 2008 09:44:13 -0300, Gabriel Rossetti <[EMAIL PROTECTED]> 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.

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).

--
Gabriel Genellina

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to