aboutsummaryrefslogtreecommitdiff
path: root/src/combinator.lisp
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2021-06-28 17:56:23 -0700
committerSean Whitton <spwhitton@spwhitton.name>2021-06-28 17:56:23 -0700
commit84220cdb2c244f19db4e958187da51251be2ebdd (patch)
tree029fa0769ccdb146747cad24e9cffc69ebe41b48 /src/combinator.lisp
parent519c4dbd5a6ce576db4adf40c973b97c0d62b8c2 (diff)
downloadconsfigurator-84220cdb2c244f19db4e958187da51251be2ebdd.tar.gz
report whether FAILED-CHANGE, :NO-CHANGE or something else at end
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Diffstat (limited to 'src/combinator.lisp')
-rw-r--r--src/combinator.lisp14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/combinator.lisp b/src/combinator.lisp
index 636893e..bcf532a 100644
--- a/src/combinator.lisp
+++ b/src/combinator.lisp
@@ -147,10 +147,16 @@ apply the elements of REQUIREMENTS in reverse order."
;; without any way to distinguish them. Perhaps we can use the
;; :TEST argument to RESTART-CASE such that only the
;; innermost(?) skip option appears.
- (setq result (restart-case (if announce
- (announce-propapp-apply propapp)
- (propapp-apply propapp))
- (skip-property () 'failed-change)))
+ (setq result
+ (restart-case (if announce
+ (announce-propapp-apply propapp)
+ (propapp-apply propapp))
+ (skip-property (c)
+ ;; Re-signal as a non-error, for notification purposes.
+ (signal 'failed-change
+ :format-control (simple-condition-format-control c)
+ :format-arguments (simple-condition-format-arguments c))
+ 'failed-change)))
(when (and (plusp (length buffer))
(or (> *consfigurator-debug-level* 1)
(not (eql result :no-change))))