 
 : version? ( -- ? ) "version" get ;
 
+: listener-restarts ( quot -- )
+    [
+        restarts get empty? embedded? or
+        [ rethrow ] [ print-error-and-restarts "q" on "listener" run ] if
+    ] recover ; inline
+
 : command-line-startup ( -- )
     (command-line) parse-command-line {
         { [ help? ] [ help. ] }

! Copyright (C) 2011 Joe Groff.
! See http://factorcode.org/license.txt for BSD license.
USING: combinators command-line eval io io.pathnames kernel
layouts math math.parser namespaces parser system vocabs.loader ;
IN: command-line.startup

: help? ( -- ? )

        [
            load-vocab-roots
            run-user-init
            "e" get script get or [
                t auto-use? [
                    "e" get [ '[ _ eval( -- ) ] listener-restarts ] when*
                    script get [ '[ _ run-script ] listener-restarts ] when*
                ] with-variable
            ] [
                "run" get run
            ] if
