guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

18/18: installer: Fix bug when changing languages.


From: John Darrington
Subject: 18/18: installer: Fix bug when changing languages.
Date: Thu, 2 Feb 2017 18:13:05 +0000 (UTC)

jmd pushed a commit to branch wip-installer
in repository guix.

commit 688f4f752fad5bea1afacaa3ddfcfdb0fcd2f861
Author: John Darrington <address@hidden>
Date:   Thu Feb 2 12:55:18 2017 +0100

    installer: Fix bug when changing languages.
    
    * gnu/system/installer/guixsd-installer.scm (guixsd-installer): Set
    locale to a utf8 based locale before initialising ncurses.
---
 gnu/system/installer/guixsd-installer.scm |   13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/gnu/system/installer/guixsd-installer.scm 
b/gnu/system/installer/guixsd-installer.scm
index c84e099..4f2e92b 100644
--- a/gnu/system/installer/guixsd-installer.scm
+++ b/gnu/system/installer/guixsd-installer.scm
@@ -286,7 +286,18 @@ tail of the list."
   (catch #t
     (lambda ()
 
-      (define stdscr (initscr))                ; Start curses
+      (define stdscr
+        ((lambda ()
+           ;; initscr must be called whilst the UTF-8 encoding is in the 
locale.
+           ;; Otherwise, on certain terminal types, bad things will happen when
+           ;; one later changes to UTF-8.
+           (define old-locale #f)
+           (dynamic-wind
+               (lambda ()
+                 (set! old-locale (setlocale LC_ALL))
+                 (setlocale LC_ALL "en_US.UTF-8"))
+               (lambda () (initscr))  ;; Initialise ncurses
+               (lambda () (setlocale LC_ALL old-locale))))))
 
       ;; We don't want any nasty kernel messages damaging our beautifully
       ;; crafted display.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]