0.8.1.12:
authorWilliam Harold Newman <william.newman@airmail.net>
Mon, 30 Jun 2003 19:28:17 +0000 (19:28 +0000)
committerWilliam Harold Newman <william.newman@airmail.net>
Mon, 30 Jun 2003 19:28:17 +0000 (19:28 +0000)
minor ANSI-compliance fix: CONTROL-ERROR from failed
MUFFLE-WARNING (caught by clocc-ansi-test)
centralized FIND-RESTART-OR-CONTROL-ERROR logic more than
before

package-data-list.lisp-expr
src/code/condition.lisp
src/code/target-error.lisp
version.lisp-expr

index ce17c06..114def3 100644 (file)
@@ -884,6 +884,7 @@ retained, possibly temporariliy, because it might be used internally."
              "EVAL-IN-LEXENV"
             "DEBUG-NAMIFY"
              "FORCE" "DELAY" "PROMISE-READY-P"
+            "FIND-RESTART-OR-CONTROL-ERROR"
 
              ;; These could be moved back into SB!EXT if someone has
              ;; compelling reasons, but hopefully we can get by
index 0b2b49b..62b7465 100644 (file)
   #!+sb-doc
   "Transfer control to a restart named ABORT, signalling a CONTROL-ERROR if
    none exists."
-  (invoke-restart (find-restart 'abort condition))
+  (invoke-restart (find-restart-or-control-error 'abort condition))
   ;; ABORT signals an error in case there was a restart named ABORT
   ;; that did not transfer control dynamically. This could happen with
   ;; RESTART-BIND.
   #!+sb-doc
   "Transfer control to a restart named MUFFLE-WARNING, signalling a
    CONTROL-ERROR if none exists."
-  (invoke-restart (find-restart 'muffle-warning condition)))
+  (invoke-restart (find-restart-or-control-error 'muffle-warning condition)))
 
 (macrolet ((define-nil-returning-restart (name args doc)
             #!-sb-doc (declare (ignore doc))
index fc61108..4c8eb83 100644 (file)
                    (eq (restart-name x) name)))
              restarts)))
 
-(defun find-restart-or-lose (restart-designator)
-  (let ((real-restart (find-restart restart-designator)))
-    (unless real-restart
+;;; helper for the various functions which are ANSI-spec'ed to do
+;;; something with a restart or signal CONTROL-ERROR if there is none
+(defun find-restart-or-control-error (identifier &optional condition)
+  (or (find-restart identifier condition)
       (error 'simple-control-error
-            :format-control "Restart ~S is not active."
-            :format-arguments (list restart-designator)))
-    real-restart))
+            :format-control "No restart ~S is active ~{for ~S~}."
+            :format-arguments (list identifier condition))))
 
 (defun invoke-restart (restart &rest values)
   #!+sb-doc
   "Calls the function associated with the given restart, passing any given
    arguments. If the argument restart is not a restart or a currently active
-   non-nil restart name, then a control-error is signalled."
+   non-nil restart name, then a CONTROL-ERROR is signalled."
   (/show "entering INVOKE-RESTART" restart)
-  (let ((real-restart (find-restart-or-lose restart)))
+  (let ((real-restart (find-restart-or-control-error restart)))
     (apply (restart-function real-restart) values)))
 
 (defun interactive-restart-arguments (real-restart)
   #!+sb-doc
   "Calls the function associated with the given restart, prompting for any
    necessary arguments. If the argument restart is not a restart or a
-   currently active non-nil restart name, then a control-error is signalled."
-  (let* ((real-restart (find-restart-or-lose restart))
+   currently active non-NIL restart name, then a CONTROL-ERROR is signalled."
+  (let* ((real-restart (find-restart-or-control-error restart))
         (args (interactive-restart-arguments real-restart)))
     (apply (restart-function real-restart) args)))
 \f
index 2965c2a..b2e1faa 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.8.1.11"
+"0.8.1.12"