summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-04-17 11:51:31 +0200
committerLudovic Courtès <ludo@gnu.org>2019-04-17 11:53:54 +0200
commit14755829dc268a3983036908750f4ea40c5224b3 (patch)
treed3c07b4b3e3d4fbce28bde6a458d15d592de2fc8
parent7cb7be17af77caa084c1b5ebf20748dd04f208fa (diff)
downloadpatches-14755829dc268a3983036908750f4ea40c5224b3.tar
patches-14755829dc268a3983036908750f4ea40c5224b3.tar.gz
installer: Sort items with 'string-locale<?'.
That way "Österreich" comes before "Schweiz" in a German locale (or pretty much any sane locale.) * gnu/installer/newt/page.scm (run-listbox-selection-page)[sort-listbox-items]: Use 'string-locale<?' instead of 'string<=?'.
-rw-r--r--gnu/installer/newt/page.scm7
1 files changed, 4 insertions, 3 deletions
diff --git a/gnu/installer/newt/page.scm b/gnu/installer/newt/page.scm
index 8b3fd488e9..5c650652bd 100644
--- a/gnu/installer/newt/page.scm
+++ b/gnu/installer/newt/page.scm
@@ -21,6 +21,7 @@
#:use-module (gnu installer utils)
#:use-module (gnu installer newt utils)
#:use-module (guix i18n)
+ #:use-module (ice-9 i18n)
#:use-module (ice-9 match)
#:use-module (ice-9 receive)
#:use-module (srfi srfi-1)
@@ -223,7 +224,7 @@ be selected (using the <SPACE> key). It that case, a list containing the
selected items will be returned.
If SORT-LISTBOX-ITEMS? is set to #t, the listbox items are sorted using
-'string<=' procedure (after being converted to text).
+'string-locale<?' procedure (after being converted to text).
If ALLOW-DELETE? is #t, the form will return if the <DELETE> key is pressed,
otherwise nothing will happen.
@@ -249,7 +250,7 @@ ITEM was inserted into LISTBOX."
items))
(define (sort-listbox-items listbox-items)
- "Return LISTBOX-ITEMS sorted using the 'string<=' procedure on the text
+ "Return LISTBOX-ITEMS sorted using the 'string-locale<?' procedure on the text
corresponding to each item in the list."
(let* ((items (map (lambda (item)
(cons item (listbox-item->text item)))
@@ -258,7 +259,7 @@ corresponding to each item in the list."
(sort items (lambda (a b)
(let ((text-a (cdr a))
(text-b (cdr b)))
- (string<= text-a text-b))))))
+ (string-locale<? text-a text-b))))))
(map car sorted-items)))
;; Store the last selected listbox item's key.