From c111a9c036ab40afffe9716f4798b2764c59dc9a Mon Sep 17 00:00:00 2001 From: Jani Taskinen Date: Fri, 17 Jul 2009 11:13:51 +0000 Subject: [PATCH] - Fixed bug #47481 (natcasesort() does not sort extended ASCII characters correctly) --- ext/standard/strnatcmp.c | 2 +- ext/standard/tests/strings/bug47481.phpt | 57 ++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 ext/standard/tests/strings/bug47481.phpt diff --git a/ext/standard/strnatcmp.c b/ext/standard/strnatcmp.c index 70a546e00e..c03517e659 100644 --- a/ext/standard/strnatcmp.c +++ b/ext/standard/strnatcmp.c @@ -103,7 +103,7 @@ compare_left(char const *a, char const *b) */ 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; diff --git a/ext/standard/tests/strings/bug47481.phpt b/ext/standard/tests/strings/bug47481.phpt new file mode 100644 index 0000000000..4c59a7c377 --- /dev/null +++ b/ext/standard/tests/strings/bug47481.phpt @@ -0,0 +1,57 @@ +--TEST-- +Bug #47481 (natcasesort() does not sort extended ASCII characters correctly) +--FILE-- + +--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 -- 2.40.0