From 59e2e55d0f154a388adc9bac37d2b45f2ba971f8 Mon Sep 17 00:00:00 2001 From: Pádraig Brady
Date: Fri, 26 Feb 2010 15:33:16 +0000
Subject: sort: fix issues with month sorting in some locales
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* src/sort.c (char fold_toupper[]): Change to unsigned
so as the correct comparisons are made in getmonth().
This fixes unibyte locales where abbreviated months
have characters that are > 0x7F, but it also works for
multibyte locales with the caveat that multibyte characters
are matched case sensitively.
With this change, the following example sorts correctly:
$ echo -e "1 márta\n2 Feabhra" | LANG=ga_IE.utf8 sort -k2,2M
2 Feabhra
1 márta
* src/sort.c (inittables): Since we ignore blanks around months
in the input, don't include them when they're present in the locale.
With this change, the following example sorts correctly:
$ echo -e "1 2月\n2 1月" | LANG=ja_JP.utf8 sort -k2,2M
2 1月
1 2月
* tests/misc/sort-month: A new test to exercise the above cases.
* tests/Makefile.am: Reference the new test.
* NEWS: Mention the fix.
---
tests/Makefile.am | 1 +
tests/misc/sort-month | 38 ++++++++++++++++++++++++++++++++++++++
2 files changed, 39 insertions(+)
create mode 100755 tests/misc/sort-month
(limited to 'tests')
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 68b3f71b7..db1610d6b 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -225,6 +225,7 @@ TESTS = \
misc/sort-files0-from \
misc/sort-merge \
misc/sort-merge-fdlimit \
+ misc/sort-month \
misc/sort-rand \
misc/sort-version \
misc/split-a \
diff --git a/tests/misc/sort-month b/tests/misc/sort-month
new file mode 100755
index 000000000..aee5215d5
--- /dev/null
+++ b/tests/misc/sort-month
@@ -0,0 +1,38 @@
+#!/bin/sh
+# Test sorting of abbreviated months from the locale
+
+# Copyright (C) 2010 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see