diff options
author | Ludovic Courtès <ludo@gnu.org> | 2021-11-07 15:56:19 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2021-11-07 23:10:41 +0100 |
commit | 4d59596a1c5f6b20870e619cbf67068ac7dd64ff (patch) | |
tree | 46985246b252c9723a5584a6a80073037a842ec9 /guix/ui.scm | |
parent | dab2ac2ed53810427bb6a053137091d8d9ab3e56 (diff) |
ui: 'load*' correctly reports 'read-error' in all cases.
Previously, 'read-error' exceptions other than "missing closing paren"
would not be reported; instead, we'd directly call (exit 1) without
printing anything.
Fixes <https://issues.guix.gnu.org/51463>.
Reported by Alice BRENON <alice.brenon@ens-lyon.fr>.
* guix/ui.scm (report-load-error): Report the error without re-throwing
upon 'read-error'.
* tests/guix-build.sh: Add test.
Diffstat (limited to 'guix/ui.scm')
-rw-r--r-- | guix/ui.scm | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/guix/ui.scm b/guix/ui.scm index b01bb3d587..bd999103ff 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -377,7 +377,8 @@ ARGS is the list of arguments received by the 'throw' handler." (+ 2 (string-contains message ": "))))) (format (current-error-port) (G_ "~amissing closing parenthesis~%") location)) - (apply throw args))) + (report-error (G_ "read error while loading '~a': ~a~%") + file (apply format #f message args)))) (('syntax-error proc message properties form subform . rest) (let ((loc (source-properties->location properties))) (report-error loc (G_ "~s: ~a~%") |