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