Ilia,

Your patch basically makes PHP constants case sensitive.
Changing this is a very big backwards compatibility problem.
You're not supposed to register two define's with the same letters but 
different case.

Andi

At 01:21 PM 6/15/2002 -0400, Ilia A. wrote:
>Hello,
>
>While developing software in PHP that supports i18n I've come across several
>problems that affect defines made in PHP.
>The first problem is that when a define is declared and its name contains
>upper case characters such as I, the define becomes unusable if a locale,
>which does not support those chracters is exported, such as tr_TR or ru_IU.
>Bug Report at: http://bugs.php.net/bug.php?id=16865
>
>There is a problem with case sensetivity of defines, for example, if you
>create a case sensetive define 'TEST' and then a case sensetive define
>'test', the latter define's value will be lost.
>Bug Report at: http://bugs.php.net/?id=17658
>
>The problem occurs because zend internally (zend_constants.c) seems to always
>lowecase the define before it is fetched/added to the hash table of defines.
>This causes problem for i18n because the define is lowercased using c's
>tolower function, which is affected by locale settings. Because it is stored
>as lower case, having 2 defines with the same name but in different case also
>becomes impossible to do.
>
>Attached is a patch against zend_constants.c CVS revision 1.38 that fixes 
>both
>of these bugs, I hope the developers would consider adding this patch to the
>CVS.
>
>Ilia
>--
>PHP Development Mailing List <http://www.php.net/>
>To unsubscribe, visit: http://www.php.net/unsub.php


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

Reply via email to