guix-commits
[Top][All Lists]
Advanced

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

02/03: ui: Gracefully handle Unicode description strings.


From: Ludovic Courtès
Subject: 02/03: ui: Gracefully handle Unicode description strings.
Date: Thu, 24 Sep 2015 20:16:31 +0000

civodul pushed a commit to branch master
in repository guix.

commit 08d7e3592faa93f508cd7f0c30199fe53c87892b
Author: Ludovic Courtès <address@hidden>
Date:   Thu Sep 24 21:56:42 2015 +0200

    ui: Gracefully handle Unicode description strings.
    
    Fixes <http://bugs.gnu.org/21536>.
    Reported by Alex Kost <address@hidden>.
    
    * guix/ui.scm (texi->plain-text): Wrap body in 'with-fluids'.
    * tests/ui.scm ("package-description-string vs. Unicode"): New test.
---
 guix/ui.scm  |    5 ++++-
 tests/ui.scm |    7 +++++++
 2 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/guix/ui.scm b/guix/ui.scm
index 4a3630f..67dd062 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -803,7 +803,10 @@ converted to a space; sequences of more than one line 
break are preserved."
 
 (define (texi->plain-text str)
   "Return a plain-text representation of texinfo fragment STR."
-  (stexi->plain-text (texi-fragment->stexi str)))
+  ;; 'texi-fragment->stexi' uses a string port so make sure it's a
+  ;; Unicode-capable one (see <http://bugs.gnu.org/11197>.)
+  (with-fluids ((%default-port-encoding "UTF-8"))
+    (stexi->plain-text (texi-fragment->stexi str))))
 
 (define (package-description-string package)
   "Return a plain-text representation of PACKAGE description field."
diff --git a/tests/ui.scm b/tests/ui.scm
index 25fc709..bd4c907 100644
--- a/tests/ui.scm
+++ b/tests/ui.scm
@@ -22,6 +22,7 @@
   #:use-module (guix profiles)
   #:use-module (guix store)
   #:use-module (guix derivations)
+  #:use-module (guix tests)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-11)
   #:use-module (srfi srfi-19)
@@ -89,6 +90,12 @@ interface, and powerful string processing.")
   (fill-paragraph "First line.
 Second line" 24))
 
+(test-equal "package-description-string vs. Unicode"
+  "b•ll•t\n\n"                                ;see <http://bugs.gnu.org/21536>
+  (with-fluids ((%default-port-encoding "ISO-8859-1"))
+    (package-description-string
+     (dummy-package "foo" (description "b•ll•t")))))
+
 (test-equal "package-specification->name+version+output"
   '(("guile" #f "out")
     ("guile" "2.0.9" "out")



reply via email to

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