You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
(define-condition simple-file-error (simple-condition file-error)
()
(:report (lambda (c s)
(apply #'format s (slot-value c 'error-type)
(file-error-pathname c)
(simple-condition-format-arguments c)))))
and:
(define-condition simple-condition (condition)
((format-control :initarg :format-control
:reader simple-condition-format-control)
(format-arguments :initarg :format-arguments
:initform nil
:reader simple-condition-format-arguments))
(:report (lambda (c stream) ;; If this were a method, slot value might be faster someday. Accessors always faster ?
;; And of course it's terribly important that this be as fast as humanly possible...
;Use accessors because they're documented and users can specialize them.
(apply #'format stream (simple-condition-format-control c)
(simple-condition-format-arguments c)))))
simple-file-error is a simple-condition that has a format-control
slot, but this slot is not filled by %err-disp-common, therefore
handlers that try to use that slot to format the error fail.
Note that %err-disp-common has a format-string argument that is correctly filled; I'd suggest adding a line:
:format-control format-string
to the make-condition call.
The text was updated successfully, but these errors were encountered:
informatimago
changed the title
simple-file-error is not give a :format-control :-(
simple-file-error is not given a :format-control :-(
Apr 29, 2021
In %err-disp-common in l1-error-signal.lisp L90
but:
and:
simple-file-error is a simple-condition that has a format-control
slot, but this slot is not filled by %err-disp-common, therefore
handlers that try to use that slot to format the error fail.
Note that %err-disp-common has a format-string argument that is correctly filled; I'd suggest adding a line:
to the make-condition call.
The text was updated successfully, but these errors were encountered: