ui: Always print the exception upon load errors.
Fixes <https://bugs.gnu.org/34402>. Reported by <pkill9@runbox.com>. Previously 'display-error' could be called with the wrong number of arguments (e.g., for 'git-error' exceptions), and thus nothing at all was displayed. * guix/ui.scm (report-load-error): Check whether ARGS matches the parameters for 'display-error' and call 'print-exception' otherwise.
This commit is contained in:
parent
5ea206a8a9
commit
70a50305c4
11
guix/ui.scm
11
guix/ui.scm
|
@ -374,9 +374,16 @@ ARGS is the list of arguments received by the 'throw' handler."
|
|||
(report-error (G_ "exception thrown: ~s~%") obj))
|
||||
(when (fix-hint? obj)
|
||||
(display-hint (condition-fix-hint obj))))
|
||||
((error args ...)
|
||||
((key args ...)
|
||||
(report-error (G_ "failed to load '~a':~%") file)
|
||||
(apply display-error frame (current-error-port) args))))
|
||||
(match args
|
||||
(((? symbol? proc) (? string? message) (args ...) . rest)
|
||||
(display-error frame (current-error-port) proc message
|
||||
args rest))
|
||||
(_
|
||||
;; Some exceptions like 'git-error' do not follow Guile's convention
|
||||
;; above and need to be printed with 'print-exception'.
|
||||
(print-exception (current-error-port) frame key args))))))
|
||||
|
||||
(define (warn-about-load-error file args) ;FIXME: factorize with ↑
|
||||
"Report the failure to load FILE, a user-provided Scheme file, without
|
||||
|
|
Loading…
Reference in New Issue