On June 18, 2002 05:32 am, Hartmut Holzgraefe wrote:
> Andi Gutmans wrote:
> > Hi,
> >
> > I'll try and get the patch into PHP soon (I was busy with other things)
> > I want to rewrite it a bit to make it nicer.
>
> does the case-sensitive, then case-insensitive logic really make
> that much sense? wouldn't it be easier *and* more consistent to
> make zend_str_tolower() not use libc tolower() but some locale-insensitive
> code instead? or am i missing something?
>
> btw, the use of strtod() within the engine is a similar problem
> the lexer always looks for '.' as decimal_point (which is right)
> but then uses strtod() to convert the found string into a double
> without taking in account that the decimal_point in the current
> locale may be a different character so that parsing stops at the '.',
> cutting off all decimals
> so strtod() should be replaced by something not locale-aware
> (and no, atof() is not what we are looking for) or replace the '.'
> with whatever decimal_point is set to in the current locale
>
> first solution would perform better, but from looking at the OpenBSD
> implementation of strtod() i think the second has far less potential
> for problems while not performing to bad if decimal_point is cached
> somehow ...

By using a functiont that does not support lowercasing, would also cause 
problems, since if a constant name contains non english characters it would 
break. IMHO the best implementation is to simply not lowercase constant names 
unless the user specifically whats case insensetive locale.


>
> PS: IMHO we have to rethink the complete set_locale() stuff in PHP
>      as there is absolutely no way to make it work in threaded SAPIs :(

Doesn't work, simply not true. My PHP code uses locales extensively and it 
works just fine on Apache 2.0 (threads model) and on IIS, which uses threads.

Ilia


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to