ui: Factorize '&message' handling.
* guix/ui.scm (call-with-error-handling): Factorize the three 'message-condition?' clauses into one.master
parent
7a0bf3d533
commit
efe037fc5c
18
guix/ui.scm
18
guix/ui.scm
|
@ -782,17 +782,14 @@ directories:~{ ~a~}~%")
|
||||||
(invoke-error-stop-signal c)
|
(invoke-error-stop-signal c)
|
||||||
(cons (invoke-error-program c)
|
(cons (invoke-error-program c)
|
||||||
(invoke-error-arguments c))))
|
(invoke-error-arguments c))))
|
||||||
((and (error-location? c) (message-condition? c))
|
((message-condition? c)
|
||||||
(report-error (error-location c) (G_ "~a~%")
|
;; Normally '&message' error conditions have an i18n'd message.
|
||||||
|
(report-error (and (error-location? c) (error-location c))
|
||||||
|
(G_ "~a~%")
|
||||||
(gettext (condition-message c) %gettext-domain))
|
(gettext (condition-message c) %gettext-domain))
|
||||||
(when (fix-hint? c)
|
(when (fix-hint? c)
|
||||||
(display-hint (condition-fix-hint c)))
|
(display-hint (condition-fix-hint c)))
|
||||||
(exit 1))
|
(exit 1))
|
||||||
((and (message-condition? c) (fix-hint? c))
|
|
||||||
(report-error (G_ "~a~%")
|
|
||||||
(gettext (condition-message c) %gettext-domain))
|
|
||||||
(display-hint (condition-fix-hint c))
|
|
||||||
(exit 1))
|
|
||||||
|
|
||||||
;; On Guile 3.0.0, exceptions such as 'unbound-variable' are
|
;; On Guile 3.0.0, exceptions such as 'unbound-variable' are
|
||||||
;; compound and include a '&message'. However, that message only
|
;; compound and include a '&message'. However, that message only
|
||||||
|
@ -806,12 +803,7 @@ directories:~{ ~a~}~%")
|
||||||
(guile-3
|
(guile-3
|
||||||
((exception-predicate &exception-with-kind-and-args) c))
|
((exception-predicate &exception-with-kind-and-args) c))
|
||||||
(else #f))
|
(else #f))
|
||||||
(raise c))
|
(raise c)))
|
||||||
|
|
||||||
((message-condition? c)
|
|
||||||
;; Normally '&message' error conditions have an i18n'd message.
|
|
||||||
(leave (G_ "~a~%")
|
|
||||||
(gettext (condition-message c) %gettext-domain))))
|
|
||||||
;; Catch EPIPE and the likes.
|
;; Catch EPIPE and the likes.
|
||||||
(catch 'system-error
|
(catch 'system-error
|
||||||
thunk
|
thunk
|
||||||
|
|
Reference in New Issue