1.0.28.68: move PPC over to slimmed-down EMIT-ERROR-BREAK interface
[sbcl.git] / src / code / toplevel.lisp
index 95cd0ec..87a4752 100644 (file)
@@ -291,13 +291,13 @@ command-line.")
 (defvar +++ nil #!+sb-doc "the previous value of ++")
 (defvar -   nil #!+sb-doc "the form currently being evaluated")
 
-(defun interactive-eval (form)
+(defun interactive-eval (form &key (eval #'eval))
   #!+sb-doc
   "Evaluate FORM, returning whatever it returns and adjusting ***, **, *,
 +++, ++, +, ///, //, /, and -."
   (setf - form)
   (unwind-protect
-       (let ((results (multiple-value-list (eval form))))
+       (let ((results (multiple-value-list (funcall eval form))))
          (setf /// //
                // /
                / results
@@ -398,14 +398,12 @@ command-line.")
     t))
 
 (defun process-script (script)
-  (let ((pathname (native-pathname script))
-        (ok nil))
-    (unwind-protect
-         (with-open-file (f pathname :element-type :default)
-           (maybe-skip-shebang-line f)
-           (load f :verbose nil :print nil)
-           (setf ok t))
-      (quit :unix-status (if ok 0 1)))))
+  (let ((pathname (native-pathname script)))
+    (handling-end-of-the-world
+      (with-open-file (f pathname :element-type :default)
+        (maybe-skip-shebang-line f)
+        (load f :verbose nil :print nil)
+        (quit)))))
 
 ;; Errors while processing the command line cause the system to QUIT,
 ;; instead of trying to go into the Lisp debugger, because trying to