~ chicken-core (chicken-5) c0395ce2f1a4683e5401f7b72c09612d61590015


commit c0395ce2f1a4683e5401f7b72c09612d61590015
Author:     Peter Bex <peter@more-magic.net>
AuthorDate: Sun Aug 9 16:46:39 2015 +0200
Commit:     Evan Hanson <evhan@foldling.org>
CommitDate: Thu Aug 20 09:19:50 2015 +1200

    Do not override ##sys#quit-hook in csi
    
    This is not needed; the "repl" procedure already overrides it anyway.
    
    The old behaviour seems to have been that this (incorrectly!) created
    a "local" ##sys#quit-hook in csi which ",q" would invoke, ignoring the
    global one.  However, it's fine to simply call the default quit hook.
    
    Instead of directly calling ##sys#quit-hook (which has a different
    signature than the aforementioned "local" quit-hook), we now call the
    official API: "quit".  This has an optional argument, so it won't
    bomb out like ",q" did before this patch.
    
    Signed-off-by: Evan Hanson <evhan@foldling.org>

diff --git a/csi.scm b/csi.scm
index 7e48e8dc..c30714b9 100644
--- a/csi.scm
+++ b/csi.scm
@@ -338,7 +338,7 @@ EOF
 				[xn (eval n)] )
 			   (dump xe xn) ) )
 			((r) (report))
-			((q) (##sys#quit-hook))
+			((q) (quit))
 			((l)
 			 (let ((fns (string-split (read-line))))
 			   (for-each load fns)
@@ -1103,10 +1103,7 @@ EOF
       (do ([args args (cdr args)])
 	  ((null? args)
 	   (unless batch 
-	     (call/cc
-	      (lambda (k)
-		(set! ##sys#quit-hook (lambda _ (k #f)))
-		(repl csi-eval)))
+	     (repl csi-eval)
 	     (##sys#write-char-0 #\newline ##sys#standard-output) ) )
 	(let* ((arg (car args)))
 	  (cond ((member arg simple-options))
Trap