aboutsummaryrefslogtreecommitdiff
path: root/guix/utils.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2017-11-08 11:16:25 +0100
committerLudovic Courtès <ludo@gnu.org>2017-11-08 22:31:58 +0100
commit23735137eb666e9fe2e848563615bca5bcea1282 (patch)
tree5ce26b3954ef5401c1096bbce76fc2d65e3420cd /guix/utils.scm
parent37eed374d92e0fbb29701b072c3a39433fbba16d (diff)
downloadgnu-guix-23735137eb666e9fe2e848563615bca5bcea1282.tar
gnu-guix-23735137eb666e9fe2e848563615bca5bcea1282.tar.gz
ui: Define and honor '&error-location' and '&fix-hint' conditions.
* guix/utils.scm (&error-location, &fix-hint): New condition types. * guix/ui.scm (report-load-error): Handle them. (call-with-error-handling): Honor '&error-location'.
Diffstat (limited to 'guix/utils.scm')
-rw-r--r--guix/utils.scm17
1 files changed, 17 insertions, 0 deletions
diff --git a/guix/utils.scm b/guix/utils.scm
index eb1ec29b32..c0ffed172a 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -28,6 +28,7 @@
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-26)
+ #:use-module (srfi srfi-35)
#:use-module (srfi srfi-39)
#:use-module (ice-9 binary-ports)
#:autoload (rnrs io ports) (make-custom-binary-input-port)
@@ -60,6 +61,14 @@
source-properties->location
location->source-properties
+ &error-location
+ error-location?
+ error-location
+
+ &fix-hint
+ fix-hint?
+ condition-fix-hint
+
nix-system->gnu-triplet
gnu-triplet->nix-system
%current-system
@@ -750,6 +759,14 @@ a location object."
(column . ,(location-column loc))
(filename . ,(location-file loc))))
+(define-condition-type &error-location &error
+ error-location?
+ (location error-location)) ;<location>
+
+(define-condition-type &fix-hint &condition
+ fix-hint?
+ (hint condition-fix-hint)) ;string
+
;;; Local Variables:
;;; eval: (put 'call-with-progress-reporter 'scheme-indent-function 1)
;;; End: