guix-commits
[Top][All Lists]
Advanced

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

branch core-updates-frozen updated: installer: keymap: Fix optional fiel


From: guix-commits
Subject: branch core-updates-frozen updated: installer: keymap: Fix optional fields handling.
Date: Tue, 21 Sep 2021 16:44:36 -0400

This is an automated email from the git hooks/post-receive script.

mothacehe pushed a commit to branch core-updates-frozen
in repository guix.

The following commit(s) were added to refs/heads/core-updates-frozen by this 
push:
     new d58e52b  installer: keymap: Fix optional fields handling.
d58e52b is described below

commit d58e52b0713648dd30d41b41277854a935d8d15a
Author: Mathieu Othacehe <othacehe@gnu.org>
AuthorDate: Tue Sep 21 20:35:49 2021 +0000

    installer: keymap: Fix optional fields handling.
    
    Fixes: <https://issues.guix.gnu.org/50723>.
    
    The keymap xml contains optional shortDescription and description fields. 
The
    assoc-ref call on those fields can return false, handle it correctly.
    
    * gnu/installer/keymap.scm (xkb-rules->models+layouts): Introduce a new
    "maybe-empty" helper to deal with optional fields. Use it for 
shortDescription
    and description fields.
---
 gnu/installer/keymap.scm | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/gnu/installer/keymap.scm b/gnu/installer/keymap.scm
index c42b308..83b65a0 100644
--- a/gnu/installer/keymap.scm
+++ b/gnu/installer/keymap.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2018, 2021 Mathieu Othacehe <othacehe@gnu.org>
 ;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -79,6 +79,11 @@
   "Parse FILE and return two values, the list of supported X11-KEYMAP-MODEL
 and X11-KEYMAP-LAYOUT records. FILE is an XML file from the X Keyboard
 Configuration Database, describing possible XKB configurations."
+  (define maybe-empty
+    (match-lambda
+      ((x) x)
+      (#f "")))
+
   (define (model m)
     (sxml-match m
                 [(model
@@ -108,7 +113,7 @@ Configuration Database, describing possible XKB 
configurations."
                    . ,rest-variant))
                  (x11-keymap-variant
                   (name name)
-                  (description (car
+                  (description (maybe-empty
                                 (assoc-ref rest-variant 'description))))]))
 
   (define (layout l)
@@ -120,9 +125,9 @@ Configuration Database, describing possible XKB 
configurations."
                   (variantList ,[variant -> v] ...))
                  (x11-keymap-layout
                   (name name)
-                  (synopsis (car
+                  (synopsis (maybe-empty
                              (assoc-ref rest-layout 'shortDescription)))
-                  (description (car
+                  (description (maybe-empty
                                 (assoc-ref rest-layout 'description)))
                   (variants (list v ...)))]
                 [(layout
@@ -131,9 +136,9 @@ Configuration Database, describing possible XKB 
configurations."
                    . ,rest-layout))
                  (x11-keymap-layout
                   (name name)
-                  (synopsis (car
+                  (synopsis (maybe-empty
                              (assoc-ref rest-layout 'shortDescription)))
-                  (description (car
+                  (description (maybe-empty
                                 (assoc-ref rest-layout 'description)))
                   (variants '()))]))
 



reply via email to

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