aboutsummaryrefslogtreecommitdiff
path: root/src/combinator.lisp
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2021-07-05 16:29:46 -0700
committerSean Whitton <spwhitton@spwhitton.name>2021-07-10 20:45:21 -0700
commit56bc5a2c24b0fe56c72ced9a5ac85d982d592567 (patch)
treed01d1820afeadd4d50794e45007bba9d9533b373 /src/combinator.lisp
parentec508517bc89d3934afa9ec91f3787839b14be2d (diff)
downloadconsfigurator-56bc5a2c24b0fe56c72ced9a5ac85d982d592567.tar.gz
signal SKIPPED-PROPERTIES & factor out interpreting exit codes
Unconditionally signalling FAILED-CHANGE does not make sense because perhaps the type of condition C is not a subtype of SIMPLE-CONDITION. Moreover, when we invoke the SKIP-PROPERTY restart we do not actually pass the condition. For simplicity, and since all we need is notification that a SKIP-PROPERTY restart was invoked, instead define and signal a special-purpose condition. Additionally, use an exit code to pass the signal between Lisp images. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Diffstat (limited to 'src/combinator.lisp')
-rw-r--r--src/combinator.lisp7
1 files changed, 2 insertions, 5 deletions
diff --git a/src/combinator.lisp b/src/combinator.lisp
index 68642ea..220b61e 100644
--- a/src/combinator.lisp
+++ b/src/combinator.lisp
@@ -151,11 +151,8 @@ apply the elements of REQUIREMENTS in reverse order."
(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))
+ (skip-property ()
+ (signal 'skipped-properties)
'failed-change)))
(when (and (plusp (length buffer))
(or (> *consfigurator-debug-level* 1)