From 7e6cb470f160b55c694a6676a594774c25fb3d1b Mon Sep 17 00:00:00 2001 From: Christopher Lam Date: Tue, 27 Oct 2020 21:51:00 +0800 Subject: [PATCH] Bug 797989 - Sorting columns by alphabet with non-ASCII characters use gnc:string-locale for string sorting --- gnucash/gnome/report-menus.scm | 2 +- .../import-export/qif-imp/qif-dialog-utils.scm | 16 ++++++++-------- gnucash/report/html-acct-table.scm | 12 ++++++------ gnucash/report/html-style-sheet.scm | 8 ++++---- gnucash/report/report-core.scm | 3 ++- gnucash/report/report-utilities.scm | 4 ++-- .../reports/standard/account-piecharts.scm | 16 ++++++++-------- .../reports/standard/category-barchart.scm | 12 ++++++------ .../report/reports/standard/customer-summary.scm | 6 ++++-- gnucash/report/reports/standard/new-aging.scm | 2 +- gnucash/report/trep-engine.scm | 4 ++-- 11 files changed, 44 insertions(+), 41 deletions(-) diff --git a/gnucash/gnome/report-menus.scm b/gnucash/gnome/report-menus.scm index c230ed08e4..4eb08fa286 100644 --- a/gnucash/gnome/report-menus.scm +++ b/gnucash/gnome/report-menus.scm @@ -65,7 +65,7 @@ (gnc-main-window-open-report (gnc:make-report report-guid) window)))))) (sort (filter (compose gnc:report-template-in-menu? cdr) *template-items*) - (lambda (a b) (string>? (car a) (car b)))))) + (lambda (a b) (gnc:string-locale>? (car a) (car b)))))) (define (gnc:report-menu-setup) (define asset-liability-menu diff --git a/gnucash/import-export/qif-imp/qif-dialog-utils.scm b/gnucash/import-export/qif-imp/qif-dialog-utils.scm index ad6aa53f96..abddb2e84d 100644 --- a/gnucash/import-export/qif-imp/qif-dialog-utils.scm +++ b/gnucash/import-export/qif-imp/qif-dialog-utils.scm @@ -412,8 +412,8 @@ (set! retval (sort retval (lambda (a b) - (stringlist cons *gnc:_style-sheets_*)) (lambda (a b) - (stringlist cons *gnc:_style-sheet-templates_*)) (lambda (a b) - (stringtemplates report))) diff --git a/gnucash/report/report-utilities.scm b/gnucash/report/report-utilities.scm index 405af4d023..d3eb1d69d1 100644 --- a/gnucash/report/report-utilities.scm +++ b/gnucash/report/report-utilities.scm @@ -138,8 +138,8 @@ (sort-and-delete-duplicates (map xaccAccountGetCommodity accounts) (lambda (a b) - (string (car a) (car b)))))) @@ -223,12 +223,12 @@ balance at a given time")) (cond ((eq? sort-method 'acct-code) (lambda (a b) - (string (car a) (car b)))))) diff --git a/gnucash/report/reports/standard/category-barchart.scm b/gnucash/report/reports/standard/category-barchart.scm index a8523b2e4d..fc85be08c7 100644 --- a/gnucash/report/reports/standard/category-barchart.scm +++ b/gnucash/report/reports/standard/category-barchart.scm @@ -479,14 +479,14 @@ developing over time")) ((alphabetical) (lambda (a b) (if show-fullname? - (string (gnc:gnc-monetary-amount (apply gnc:monetary+ (cadr a))) diff --git a/gnucash/report/reports/standard/customer-summary.scm b/gnucash/report/reports/standard/customer-summary.scm index d89986e65c..1f2f9aa0e2 100644 --- a/gnucash/report/reports/standard/customer-summary.scm +++ b/gnucash/report/reports/standard/customer-summary.scm @@ -406,7 +406,9 @@ ;; Stable-sort the sortingtable according to column, then ;; stable-sort according to currency. This results in group-by ;; currency then sort by columns. - (let* ((str-op (if (eq? sort-order 'descend) string>? string? + gnc:string-locale <))) (define (?)) + (op-str (if increasing? gnc:string-locale?)) (op-num (if increasing? < >))) (case sort-by ((name) (op-str (gncOwnerGetName own1) (gncOwnerGetName own2))) diff --git a/gnucash/report/trep-engine.scm b/gnucash/report/trep-engine.scm index 894505083b..5e6d5fe0ec 100644 --- a/gnucash/report/trep-engine.scm +++ b/gnucash/report/trep-engine.scm @@ -2089,7 +2089,7 @@ warning will be removed in GnuCash 5.0")) (value-of-X (comparator-function split-X)) (value-of-Y (comparator-function split-Y)) (op (if (string? value-of-X) - (if ascend? string?) + (if ascend? gnc:string-locale?) (if ascend? < >)))) (and value-of-X (op value-of-X value-of-Y)))) @@ -2245,7 +2245,7 @@ warning will be removed in GnuCash 5.0")) (when subtotal-table? (let* ((generic