GNU bug report logs - #20316
24.5; `string-lessp' doesn't respect value of LC_COLLATE

Previous Next

Package: emacs;

Reported by: Alexis <flexibeast <at> gmail.com>

Date: Mon, 13 Apr 2015 05:23:01 UTC

Severity: normal

Found in version 24.5

Done: Paul Eggert <eggert <at> cs.ucla.edu>

Bug is archived. No further changes may be made.

Full log


Message #14 received at 20316 <at> debbugs.gnu.org (full text, mbox):

From: Alexis <flexibeast <at> gmail.com>
To: 20316 <at> debbugs.gnu.org
Cc: michael.albinus <at> gmx.de
Subject: Re: bug#20316: 24.5;
 `string-lessp' doesn't respect value of LC_COLLATE
Date: Mon, 13 Apr 2015 16:42:30 +1000
Michael Albinus <michael.albinus <at> gmx.de> writes:

> Alexis <flexibeast <at> gmail.com> writes:
>
>> (getenv "LC_COLLATE") => "hr_HR.UTF-8"
>>
>> (string-lessp "Ć" "D") => nil (string-lessp "Đ" "S") => nil 
>> (string-lessp "Š" "Z") => nil
>
> `string-lessp' is not design to respect collation order. The 
> docstring speaks about lexicographoc order.

i'm sorry, i don't follow this. Yes, the docstring talks about 
lexicographic order. But i think it's reasonable for users to 
expect Emacs' built-in sort functionality (e.g. `sort-lines') to 
respect their current locale such that lexicographic order and 
collation order are treated as basically synonymous. Unless 
there's an important distinction between the two in this context 
that i'm missing?

In this specific case, a user of a package i maintain was 
surprised when `org-sort' didn't sort their Croatian-language Org 
entries properly. Under the hood, `org-sort' uses 
`string-lessp'. Is the bottom line that they'll have to wait until 
at least 25.1 before Org could add conditional code to use 
`string-collate-lessp', to at least DTRT for users of >25.0?


Alexis.




This bug report was last modified 10 years and 120 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.