aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2022-06-26 15:37:47 -0700
committerSean Whitton <spwhitton@spwhitton.name>2022-06-27 13:26:21 -0700
commitd71c49cb57ff028c36c9645771f33249d1481632 (patch)
treef600b73e8e61089f58854bf044af1fae15f9b3ac
parentafe955cbd1dab48cf15a5a9b3f033d47d87720f4 (diff)
downloadconsfigurator-d71c49cb57ff028c36c9645771f33249d1481632.tar.gz
ESEQPROPS-UNTIL: lift restriction on class of the condition
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
-rw-r--r--src/combinator.lisp14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/combinator.lisp b/src/combinator.lisp
index 1613bf3..e40bb8a 100644
--- a/src/combinator.lisp
+++ b/src/combinator.lisp
@@ -78,13 +78,14 @@ Usage notes:
when (eql (restart-name restart) ,restart)
collect restart)))
(handler-bind
- ((failed-change
+ ((condition
(lambda (c)
(when (subtypep (type-of c) ,condition)
- (with-indented-inform
- (apply #'informat t
- (simple-condition-format-control c)
- (simple-condition-format-arguments c)))
+ (when (subtypep (type-of c) 'simple-condition)
+ (with-indented-inform
+ (apply #'informat t
+ (simple-condition-format-control c)
+ (simple-condition-format-arguments c))))
;; We can't just use NSET-DIFFERENCE and take the
;; LASTCAR because NSET-DIFFERENCE provides no ordering
;; guarantees.
@@ -105,7 +106,8 @@ Usage notes:
(define-function-property-combinator eseqprops-until (condition &rest propapps)
"Like ESEQPROPS, but if CONDITION is signalled, handle it simply by skipping
-remaining elements of PROPAPPS. CONDITION must subtype FAILED-CHANGE."
+remaining elements of PROPAPPS. CONDITION usually names a subclass of
+FAILED-CHANGE."
(:retprop :type (combine-propapp-types propapps)
:hostattrs (lambda () (mapc #'propapp-attrs propapps))
:apply (lambda ()