Edit report at https://bugs.php.net/bug.php?id=63688&edit=1
ID: 63688 Updated by: a...@php.net Reported by: a...@php.net Summary: setlocale() fails on TS build -Status: Open +Status: Wont fix Type: Bug Package: *General Issues Operating System: Windows PHP Version: Irrelevant Block user comment: N Private report: N New Comment: looks like this isn't fixable in PHP Previous Comments: ------------------------------------------------------------------------ [2013-02-09 19:46:47] charnad at gmail dot com Bug can be reproduced on all thread safe versions above 5.3.5 (5.3.6 - 5.4.9 for the moment) in CLI mode. Bug does not reproduce on all non-thread safe versions. ------------------------------------------------------------------------ [2012-12-04 17:41:56] a...@php.net Description: ------------ CLI TS build fails to set the locale The relevant place in the code seems to be this: http://lxr.php.net/xref/PHP_5_3/main/SAPI.c#82 Extending this code right in place like _configthreadlocale(_ENABLE_PER_THREAD_LOCALE) setlocale(LC_ALL, "german"); lcnv = localeconv(); lcl = _get_current_locale(); and checking then *lcnv->decimal_point == ',' results in false. As well other values of the lconv scruct don't correspond to the set locale (german in this case). _configthreadlocale()is not invoked in the NTS builds and setlocale works correct there. Test script: --------------- Those two tests tests\lang\034.phpt tests\lang\bug30638.phpt a simpler test case <?php echo setlocale(LC_NUMERIC, 'german') . "\n"; echo (float)'3.14\n'; Expected result: ---------------- German_Germany.1252 3,14 Actual result: -------------- German_Germany.1252 3.14 ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=63688&edit=1