Gabriel Genellina wrote:
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.

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?

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

Reply via email to