From c1d52c71aa4fc8085a9737ad1b235ca53a854649 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= <ludo@gnu.org>
Date: Fri, 21 Feb 2014 17:45:04 +0100
Subject: [PATCH] ui: Handle SRFI-35 '&message' conditions.

* guix/ui.scm (call-with-error-handling): Add case for
  'message-condition?'.
* po/Makevars: Fix typo in comment.
---
 guix/ui.scm | 6 +++++-
 po/Makevars | 2 +-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/guix/ui.scm b/guix/ui.scm
index d6058f806bb..c232b326744 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -31,6 +31,7 @@ (define-module (guix ui)
   #:use-module (srfi srfi-19)
   #:use-module (srfi srfi-26)
   #:use-module (srfi srfi-34)
+  #:use-module (srfi srfi-35)
   #:use-module (srfi srfi-37)
   #:autoload   (ice-9 ftw)  (scandir)
   #:use-module (ice-9 match)
@@ -186,7 +187,10 @@ (define (call-with-error-handling thunk)
             ((nix-protocol-error? c)
              ;; FIXME: Server-provided error messages aren't i18n'd.
              (leave (_ "build failed: ~a~%")
-                    (nix-protocol-error-message c))))
+                    (nix-protocol-error-message c)))
+            ((message-condition? c)
+             ;; Normally '&message' error conditions have an i18n'd message.
+             (leave (_ "~a~%") (gettext (condition-message c)))))
     ;; Catch EPIPE and the likes.
     (catch 'system-error
       thunk
diff --git a/po/Makevars b/po/Makevars
index ade615a4523..d45ea4b9799 100644
--- a/po/Makevars
+++ b/po/Makevars
@@ -6,7 +6,7 @@ subdir = po
 top_builddir = ..
 
 # These options get passed to xgettext.  We want to catch standard
-# gettext uses, package synopses and descriptions, and SRFI-34 error
+# gettext uses, package synopses and descriptions, and SRFI-35 error
 # condition messages.
 XGETTEXT_OPTIONS =				\
   --language=Scheme --from-code=UTF-8		\
-- 
GitLab