From 9aede5be4f7f8a3dae92ad9f162fda4030bd23e8 Mon Sep 17 00:00:00 2001 From: Serge Noiraud Date: Mon, 20 Apr 2009 20:42:39 +0000 Subject: [PATCH] There are three bugs which give mistery sort problems : 1 : The normalize function use NFC in one place and NFKC in all others. either we use NFC or we use NFKC, but don't mix these two modes. 2 : One sort function does not use the locale.strcoll 3 : There is a problem with the following statement: if letter is not last_letter. "is not" doesn't work correctly. svn: r12481 --- src/plugins/webreport/NarrativeWeb.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/plugins/webreport/NarrativeWeb.py b/src/plugins/webreport/NarrativeWeb.py index d700818db..0c60871d3 100644 --- a/src/plugins/webreport/NarrativeWeb.py +++ b/src/plugins/webreport/NarrativeWeb.py @@ -1509,7 +1509,7 @@ class SurnameListPage(BasePage): index_val = "%90d_%s" % (999999999-len(data_list), surname) temp_list[index_val] = (surname, data_list) temp_keys = temp_list.keys() - temp_keys.sort() + temp_keys.sort(locale.strcoll) person_handle_list = [] for key in temp_keys: person_handle_list.append(temp_list[key]) @@ -1525,7 +1525,7 @@ class SurnameListPage(BasePage): # the surname letter = normalize('NFKC', surname)[0].upper() - if letter is not last_letter: + if letter != last_letter: last_letter = letter of.write('\t\t\n') of.write('\t\t\t%s\n' @@ -3602,7 +3602,7 @@ def get_first_letters(db, handle_list, key): keyname = get_place_keyname(db, handle) if keyname: - c = normalize('NFC', keyname)[0].upper() + c = normalize('NFKC', keyname)[0].upper() first_letters.append(c) return first_letters