c2c6f95f5635

More
[view raw] [browse files]
author Steve Losh <steve@stevelosh.com>
date Wed, 19 Dec 2018 17:44:03 -0500
parents db75783ac258
children 6ee2d1d3d487
branches/tags (none)
files lisp/clhs.lisp

Changes

--- a/lisp/clhs.lisp	Wed Dec 19 14:07:58 2018 -0500
+++ b/lisp/clhs.lisp	Wed Dec 19 17:44:03 2018 -0500
@@ -117,23 +117,23 @@
    :reduce #'adopt:newest))
 
 (defun toplevel ()
-  (multiple-value-bind (arguments options) (adopt:parse-options *ui*)
-    (when (gethash 'help options)
-      (adopt:print-usage *ui*)
-      (adopt:exit 0))
-    (let ((*open* (gethash 'open options))
-          (*url* (gethash 'url options))
-          (target (first arguments)))
-      (if (gethash 'rebuild-cache options)
-        (rebuild-cache)
-        (progn
-          (when (/= (length arguments) 1)
-            (cerror "Type a symbol"
-                    "Exactly one symbol to look up must be provided (got ~D: ~S)"
-                    (length arguments)
-                    arguments)
-            (setf arguments (list (read-line))))
-          (unless (run target)
-            (format *error-output* "Symbol not found: ~A~%" target)
-            (adopt:exit 1)))))))
-
+  (handler-case
+      (multiple-value-bind (arguments options) (adopt:parse-options *ui*)
+        (when (gethash 'help options)
+          (adopt:print-usage-and-exit *ui*))
+        (let ((*open* (gethash 'open options))
+              (*url* (gethash 'url options))
+              (target (first arguments)))
+          (if (gethash 'rebuild-cache options)
+            (rebuild-cache)
+            (progn
+              (when (/= (length arguments) 1)
+                (cerror "Type a symbol"
+                        "Exactly one symbol to look up must be provided (got ~D: ~S)"
+                        (length arguments)
+                        arguments)
+                (setf arguments (list (read-line))))
+              (unless (run target)
+                (print-error-and-exit
+                  (format nil "Symbol not found: ~A~%" target)))))))
+    (error (c) (adopt:print-error-and-exit c))))