Merge branch 'PHP-5.5' into PHP-5.6

* PHP-5.5:
  added test for things done so far for bug #66265
  partially fixed bug #66265
  forked bug67052.phpt for Windows
This commit is contained in:
Anatol Belski 2014-11-21 10:24:53 +01:00
commit 0581e877a5
10 changed files with 144 additions and 7 deletions

Binary file not shown.

View File

@ -0,0 +1,17 @@
msgid ""
msgstr ""
"Project-Id-Version: bugs.php.net/66265\n"
"POT-Creation-Date: 2014-11-20 16:33+0100\n"
"PO-Revision-Date: 2014-11-20 16:40+0100\n"
"Last-Translator: <ab@php.net>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.6.10\n"
"X-Poedit-Basepath: .\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Language: de_DE\n"
msgid "hello"
msgstr "hallo"

Binary file not shown.

View File

@ -0,0 +1,17 @@
msgid ""
msgstr ""
"Project-Id-Version: bugs.php.net/66265\n"
"POT-Creation-Date: 2014-11-20 16:33+0100\n"
"PO-Revision-Date: 2014-11-20 16:40+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.6.10\n"
"X-Poedit-Basepath: .\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Language: en_US\n"
msgid "hello"
msgstr "hello"

Binary file not shown.

View File

@ -0,0 +1,17 @@
msgid ""
msgstr ""
"Project-Id-Version: bugs.php.net/66265\n"
"POT-Creation-Date: 2014-11-20 16:33+0100\n"
"PO-Revision-Date: 2014-11-20 16:59+0100\n"
"Last-Translator: <ab@php.net>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.6.10\n"
"X-Poedit-Basepath: .\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Language: fr_FR\n"
msgid "hello"
msgstr "salut"

View File

@ -0,0 +1,47 @@
--TEST--
#66265: gettext doesn't switch locales within the same script
--SKIPIF--
<?php
if (!extension_loaded("gettext")) {
die("skip\n");
}
if (PHP_ZTS) {
/* this is supposed to fail on the TS build at least on Windows,
should be even XFAIL till it's fixed there */
die("skip NTS only");
}
?>
--FILE--
<?php
$domain = 'domain';
$loc = ["de_DE", "fr_FR", "en_US"];
foreach ($loc as $l) {
putenv("LC_ALL=$l");
$path = realpath(dirname(__FILE__) . DIRECTORY_SEPARATOR . "66265");
bindtextdomain($domain, $path);
bind_textdomain_codeset($domain, "UTF-8");
textdomain($domain);
echo 'LC_ALL=', getenv('LC_ALL'), "\n";
echo 'hello=', _('hello'), "\n";
echo "\n";
}
?>
==DONE==
--EXPECTF--
LC_ALL=de_DE
hello=hallo
LC_ALL=fr_FR
hello=salut
LC_ALL=en_US
hello=hello
==DONE==

View File

@ -0,0 +1,30 @@
--TEST--
Bug #67052 - NumberFormatter::parse() resets LC_NUMERIC setting
--SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
<?php
if (substr(PHP_OS, 0, 3) != 'WIN') {
die("skip Valid only on Windows");
}
?>
--FILE--
<?php
function ut_main()
{
setlocale(LC_ALL, 'de-de');
$fmt = new NumberFormatter( 'sl_SI.UTF-8', NumberFormatter::DECIMAL);
$num = "1.234.567,891";
$res_str = $fmt->parse($num)."\n";
$res_str .= setlocale(LC_NUMERIC, 0);
return $res_str;
}
include_once( 'ut_common.inc' );
ut_run();
?>
--EXPECT--
1234567,891
de-de

View File

@ -2,6 +2,11 @@
Bug #67052 - NumberFormatter::parse() resets LC_NUMERIC setting
--SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
<?php
if (substr(PHP_OS, 0, 3) == 'WIN') {
die("skip Valid only on non Windows");
}
?>
--FILE--
<?php

View File

@ -4108,13 +4108,17 @@ PHP_FUNCTION(putenv)
if (putenv(pe.putenv_string) == 0) { /* success */
# else
error_code = SetEnvironmentVariable(pe.key, value);
# if _MSC_VER < 1500
/* Yet another VC6 bug, unset may return env not found */
if (error_code != 0 ||
(error_code == 0 && GetLastError() == ERROR_ENVVAR_NOT_FOUND)) {
# else
if (error_code != 0) { /* success */
# endif
if (error_code != 0
# ifndef ZTS
/* We need both SetEnvironmentVariable and _putenv here as some
dependency lib could use either way to read the environment.
Obviously the CRT version will be useful more often. But
generally, doing both brings us on the safe track at least
in NTS build. */
&& _putenv(pe.putenv_string) == 0
# endif
) { /* success */
# endif
#endif
zend_hash_add(&BG(putenv_ht), pe.key, pe.key_len + 1, (void **) &pe, sizeof(putenv_entry), NULL);