[Python-Dev] updated patches for OS/2 EMX port

M.-A. Lemburg mal@lemburg.com
Thu, 31 Jan 2002 10:45:24 +0100


Andrew MacIntyre wrote:
> 
> On 27 Jan 2002, Martin v. Loewis wrote:
> > Andrew MacIntyre <andymac@bullseye.apana.org.au> writes:
> >
> > > - Modules/unicodedata.c is affected by a name clash between the internally
> > > defined _getname() and an EMX routine of the same name defined in
> > > <stdlib.h>.  The patch renames the internal routine to _getucname() to
> > > avoid this, but this change may not be acceptable - advice please.
> >
> > My advice for renaming things because of name clashes: Always rename
> > in a way that solves this particular problem for good, by using the Py
> > prefix (or _Py to further indicate that this is not public API; it's a
> > static function, anyway). Somebody may have a function _getucname
> > somewhere, whereas it is really unlikely that people add a Py prefix
> > to their functions (if they have been following the last 30 years of C
> > programming).
> 
> Fair enough.  I was trying to minimise stylistic differences in the fix,
> but if using _Py_getname is the canonical solution, that's easy fixed.

+1
 
> > > - Objects/stringobject.c and Objects/unicodeobject.c contain changes to
> > > handle the EMX runtime library returning "0x" as the prefix for output
> > > formatted with a "%X" format.
> >
> > I'd suggest a different approach here, which does not use #ifdefs:
> > Instead of testing for the system, test for the bug. Then, if the bug
> > goes away, or appears on other systems as well, the code will be good.
> 
> I did it the way I did because there's already code dealing with other
> brokeness in this area which doesn't solve the EMX issue, and the #ifdef
> solution minimises the risk of EMX fixes breaking something else which I
> can't test.  At this stage I can't see this bug being fixed in EMX :-(

I'd go with Martin's suggestion here: there already is code in 
formatint() which tests for '%#X' adding '0x' or not. This code
should be made to handle the special case by testing for it --
who knows: there may be other platforms where this doesn't work
as expected either.

BTW, could you point me to your patch for this ?

Thanks,
-- 
Marc-Andre Lemburg
CEO eGenix.com Software GmbH
______________________________________________________________________
Company & Consulting:                           http://www.egenix.com/
Python Software:                   http://www.egenix.com/files/python/