sort: fix issues with month sorting in some locales
authorPádraig Brady <P@draigBrady.com>
Fri, 26 Feb 2010 15:33:16 +0000 (15:33 +0000)
committerPádraig Brady <P@draigBrady.com>
Mon, 1 Mar 2010 10:58:02 +0000 (10:58 +0000)
commit59e2e55d0f154a388adc9bac37d2b45f2ba971f8
tree28b45daf114e30b79db3f9110683ef6d6b48c5aa
parent2590389aabc3ac2e88c56a13d28fa3caa22a5b46
sort: fix issues with month sorting in some locales

* 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.
NEWS
src/sort.c
tests/Makefile.am
tests/misc/sort-month [new file with mode: 0755]