jani Fri, 17 Jul 2009 11:13:51 +0000 URL: http://svn.php.net/viewvc?view=revision&revision=284249
Changed paths: U php/php-src/branches/PHP_5_2/NEWS U php/php-src/branches/PHP_5_2/ext/standard/strnatcmp.c A php/php-src/branches/PHP_5_2/ext/standard/tests/strings/bug47481.phpt U php/php-src/branches/PHP_5_3/NEWS U php/php-src/branches/PHP_5_3/ext/standard/strnatcmp.c A php/php-src/branches/PHP_5_3/ext/standard/tests/strings/bug47481.phpt U php/php-src/trunk/ext/standard/strnatcmp.c A php/php-src/trunk/ext/standard/tests/strings/bug47481.phpt Log: - Fixed bug #47481 (natcasesort() does not sort extended ASCII characters correctly)
Modified: php/php-src/branches/PHP_5_2/NEWS =================================================================== --- php/php-src/branches/PHP_5_2/NEWS 2009-07-17 10:40:36 UTC (rev 284248) +++ php/php-src/branches/PHP_5_2/NEWS 2009-07-17 11:13:51 UTC (rev 284249) @@ -35,6 +35,8 @@ errors when errors are logged). (Jani) - Fixed bug #48116 (Fixed build with Openssl 1.0). (Pierre, Al dot Smith at aeschi dot ch dot eu dot org) +- Fixed bug #47481 (natcasesort() does not sort extended ASCII characters + correctly). (Herman Radtke) - Fixed bug #47351 (Memory leak in DateTime). (Derick, Tobias John) - Fixed bug #45905 (imagefilledrectangle() clipping error). (markril at hotmail dot com, Pierre) Modified: php/php-src/branches/PHP_5_2/ext/standard/strnatcmp.c =================================================================== --- php/php-src/branches/PHP_5_2/ext/standard/strnatcmp.c 2009-07-17 10:40:36 UTC (rev 284248) +++ php/php-src/branches/PHP_5_2/ext/standard/strnatcmp.c 2009-07-17 11:13:51 UTC (rev 284249) @@ -101,7 +101,7 @@ */ PHPAPI int strnatcmp_ex(char const *a, size_t a_len, char const *b, size_t b_len, int fold_case) { - char ca, cb; + unsigned char ca, cb; char const *ap, *bp; char const *aend = a + a_len, *bend = b + b_len; Added: php/php-src/branches/PHP_5_2/ext/standard/tests/strings/bug47481.phpt =================================================================== --- php/php-src/branches/PHP_5_2/ext/standard/tests/strings/bug47481.phpt (rev 0) +++ php/php-src/branches/PHP_5_2/ext/standard/tests/strings/bug47481.phpt 2009-07-17 11:13:51 UTC (rev 284249) @@ -0,0 +1,57 @@ +--TEST-- +Bug #47481 (natcasesort() does not sort extended ASCII characters correctly) +--FILE-- +<?php +/* Prototype : bool natcasesort(array &$array_arg) + * Description: Sort an array using case-insensitive natural sort + * Source code: ext/standard/array.c + */ + +/* + * Test natcasesort() with extended ASCII characters + */ + +$array = array ('Süden', 'spielen','Sonne','Wind','Regen','Meer'); +echo "\n-- Before sorting: --\n"; +var_dump($array); + +echo "\n-- After Sorting: --\n"; +var_dump(natcasesort($array)); +var_dump($array); + +echo "Done"; +?> +--EXPECTF-- +-- Before sorting: -- +array(6) { + [0]=> + %string|unicode%(6) "Süden" + [1]=> + %string|unicode%(7) "spielen" + [2]=> + %string|unicode%(5) "Sonne" + [3]=> + %string|unicode%(4) "Wind" + [4]=> + %string|unicode%(5) "Regen" + [5]=> + %string|unicode%(4) "Meer" +} + +-- After Sorting: -- +bool(true) +array(6) { + [5]=> + %string|unicode%(4) "Meer" + [4]=> + %string|unicode%(5) "Regen" + [2]=> + %string|unicode%(5) "Sonne" + [1]=> + %string|unicode%(7) "spielen" + [0]=> + %string|unicode%(6) "Süden" + [3]=> + %string|unicode%(4) "Wind" +} +Done Property changes on: php/php-src/branches/PHP_5_2/ext/standard/tests/strings/bug47481.phpt ___________________________________________________________________ Added: svn:keyword + Id Revision Rev Added: svn:keywords + Id Revision Rev Modified: php/php-src/branches/PHP_5_3/NEWS =================================================================== --- php/php-src/branches/PHP_5_3/NEWS 2009-07-17 10:40:36 UTC (rev 284248) +++ php/php-src/branches/PHP_5_3/NEWS 2009-07-17 11:13:51 UTC (rev 284249) @@ -26,6 +26,8 @@ errors when errors are logged). (Jani) - Fixed bug #48116 (Fixed build with Openssl 1.0). (Pierre, Al dot Smith at aeschi dot ch dot eu dot org) +- Fixed bug #47481 (natcasesort() does not sort extended ASCII characters + correctly). (Herman Radtke) - Fixed bug #47351 (Memory leak in DateTime). (Derick, Tobias John) - Fixed bug #46682 (touch() afield returns different values on windows). (Pierre) Modified: php/php-src/branches/PHP_5_3/ext/standard/strnatcmp.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/standard/strnatcmp.c 2009-07-17 10:40:36 UTC (rev 284248) +++ php/php-src/branches/PHP_5_3/ext/standard/strnatcmp.c 2009-07-17 11:13:51 UTC (rev 284249) @@ -101,7 +101,7 @@ */ PHPAPI int strnatcmp_ex(char const *a, size_t a_len, char const *b, size_t b_len, int fold_case) { - char ca, cb; + unsigned char ca, cb; char const *ap, *bp; char const *aend = a + a_len, *bend = b + b_len; Added: php/php-src/branches/PHP_5_3/ext/standard/tests/strings/bug47481.phpt =================================================================== --- php/php-src/branches/PHP_5_3/ext/standard/tests/strings/bug47481.phpt (rev 0) +++ php/php-src/branches/PHP_5_3/ext/standard/tests/strings/bug47481.phpt 2009-07-17 11:13:51 UTC (rev 284249) @@ -0,0 +1,57 @@ +--TEST-- +Bug #47481 (natcasesort() does not sort extended ASCII characters correctly) +--FILE-- +<?php +/* Prototype : bool natcasesort(array &$array_arg) + * Description: Sort an array using case-insensitive natural sort + * Source code: ext/standard/array.c + */ + +/* + * Test natcasesort() with extended ASCII characters + */ + +$array = array ('Süden', 'spielen','Sonne','Wind','Regen','Meer'); +echo "\n-- Before sorting: --\n"; +var_dump($array); + +echo "\n-- After Sorting: --\n"; +var_dump(natcasesort($array)); +var_dump($array); + +echo "Done"; +?> +--EXPECTF-- +-- Before sorting: -- +array(6) { + [0]=> + %string|unicode%(6) "Süden" + [1]=> + %string|unicode%(7) "spielen" + [2]=> + %string|unicode%(5) "Sonne" + [3]=> + %string|unicode%(4) "Wind" + [4]=> + %string|unicode%(5) "Regen" + [5]=> + %string|unicode%(4) "Meer" +} + +-- After Sorting: -- +bool(true) +array(6) { + [5]=> + %string|unicode%(4) "Meer" + [4]=> + %string|unicode%(5) "Regen" + [2]=> + %string|unicode%(5) "Sonne" + [1]=> + %string|unicode%(7) "spielen" + [0]=> + %string|unicode%(6) "Süden" + [3]=> + %string|unicode%(4) "Wind" +} +Done Property changes on: php/php-src/branches/PHP_5_3/ext/standard/tests/strings/bug47481.phpt ___________________________________________________________________ Added: svn:keyword + Id Revision Rev Added: svn:keywords + Id Revision Rev Modified: php/php-src/trunk/ext/standard/strnatcmp.c =================================================================== --- php/php-src/trunk/ext/standard/strnatcmp.c 2009-07-17 10:40:36 UTC (rev 284248) +++ php/php-src/trunk/ext/standard/strnatcmp.c 2009-07-17 11:13:51 UTC (rev 284249) @@ -103,7 +103,7 @@ */ PHPAPI int strnatcmp_ex(char const *a, size_t a_len, char const *b, size_t b_len, int fold_case) { - char ca, cb; + unsigned char ca, cb; int ai, bi; int fractional, result; Added: php/php-src/trunk/ext/standard/tests/strings/bug47481.phpt =================================================================== --- php/php-src/trunk/ext/standard/tests/strings/bug47481.phpt (rev 0) +++ php/php-src/trunk/ext/standard/tests/strings/bug47481.phpt 2009-07-17 11:13:51 UTC (rev 284249) @@ -0,0 +1,57 @@ +--TEST-- +Bug #47481 (natcasesort() does not sort extended ASCII characters correctly) +--FILE-- +<?php +/* Prototype : bool natcasesort(array &$array_arg) + * Description: Sort an array using case-insensitive natural sort + * Source code: ext/standard/array.c + */ + +/* + * Test natcasesort() with extended ASCII characters + */ + +$array = array ('Süden', 'spielen','Sonne','Wind','Regen','Meer'); +echo "\n-- Before sorting: --\n"; +var_dump($array); + +echo "\n-- After Sorting: --\n"; +var_dump(natcasesort($array)); +var_dump($array); + +echo "Done"; +?> +--EXPECTF-- +-- Before sorting: -- +array(6) { + [0]=> + %string|unicode%(6) "Süden" + [1]=> + %string|unicode%(7) "spielen" + [2]=> + %string|unicode%(5) "Sonne" + [3]=> + %string|unicode%(4) "Wind" + [4]=> + %string|unicode%(5) "Regen" + [5]=> + %string|unicode%(4) "Meer" +} + +-- After Sorting: -- +bool(true) +array(6) { + [5]=> + %string|unicode%(4) "Meer" + [4]=> + %string|unicode%(5) "Regen" + [2]=> + %string|unicode%(5) "Sonne" + [1]=> + %string|unicode%(7) "spielen" + [0]=> + %string|unicode%(6) "Süden" + [3]=> + %string|unicode%(4) "Wind" +} +Done Property changes on: php/php-src/trunk/ext/standard/tests/strings/bug47481.phpt ___________________________________________________________________ Added: svn:keyword + Id Revision Rev Added: svn:keywords + Id Revision Rev
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php