From 6cab70465c8c4c54a1b3ee7e4183c8e8550d39de Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 8 Jul 2012 14:46:10 +0530 Subject: [PATCH] Add primary_sort_key() --- src/calibre/utils/icu.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/calibre/utils/icu.py b/src/calibre/utils/icu.py index 76a374d085..7842a34e82 100644 --- a/src/calibre/utils/icu.py +++ b/src/calibre/utils/icu.py @@ -129,7 +129,7 @@ sort_key = py_sort_key if _icu_not_ok else partial(icu_sort_key, _collator) strcmp = py_strcmp if _icu_not_ok else partial(icu_strcmp, _collator) case_sensitive_sort_key = py_case_sensitive_sort_key if _icu_not_ok else \ - icu_case_sensitive_sort_key + partial(icu_case_sensitive_sort_key, _collator) case_sensitive_strcmp = cmp if _icu_not_ok else icu_case_sensitive_strcmp @@ -164,6 +164,13 @@ def primary_find(pat, src): return py_find(ascii_text(pat), ascii_text(src)) return icu_find(primary_collator(), pat, src) +def primary_sort_key(val): + 'A sort key that ignores case and diacritics' + if _icu_not_ok: + from calibre.utils.filenames import ascii_text + return ascii_text(val).lower() + return primary_collator().sort_key(val) + ################################################################################ def test(): # {{{