Implement new procedure QUIT-SCHEME.
authorChris Hanson <org/chris-hanson/cph>
Mon, 10 Feb 1992 15:48:53 +0000 (15:48 +0000)
committerChris Hanson <org/chris-hanson/cph>
Mon, 10 Feb 1992 15:48:53 +0000 (15:48 +0000)
v7/src/edwin/editor.scm

index 6fdced2b561fd826901b9a8d27bf4fb736136450..067807156ddc96dedfa959fa85f53dfa6d1cb1ae 100644 (file)
@@ -1,6 +1,6 @@
 ;;; -*-Scheme-*-
 ;;;
-;;;    $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/editor.scm,v 1.213 1992/02/10 12:02:48 cph Exp $
+;;;    $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/editor.scm,v 1.214 1992/02/10 15:48:53 cph Exp $
 ;;;
 ;;;    Copyright (c) 1986, 1989-92 Massachusetts Institute of Technology
 ;;;
@@ -307,20 +307,21 @@ This does not affect editor errors or evaluation errors."
   (abort-current-command))
 
 (define (quit-editor-and-signal-error condition)
-  (call-with-current-continuation
-   (lambda (continuation)
-     (within-continuation editor-abort
-       (lambda ()
-        (set! edwin-continuation continuation)
-        (error condition))))))
+  (quit-editor-and (lambda () (error condition))))
 
 (define (quit-editor)
+  (quit-editor-and (lambda () *the-non-printing-object*)))
+
+(define (quit-scheme)
+  (quit-editor-and (lambda () (quit) (edit))))
+
+(define (quit-editor-and thunk)
   (call-with-current-continuation
    (lambda (continuation)
      (within-continuation editor-abort
        (lambda ()
         (set! edwin-continuation continuation)
-        *the-non-printing-object*)))))
+        (thunk))))))
 
 (define (exit-editor)
   (within-continuation editor-abort reset-editor))