[slime-cvs] CVS slime
CVS User heller
heller at common-lisp.net
Thu Oct 30 09:28:51 UTC 2008
Update of /project/slime/cvsroot/slime
In directory cl-net:/tmp/cvs-serv20453
Modified Files:
ChangeLog swank-sbcl.lisp
Log Message:
* swank-sbcl.lisp (wait-for-input): Return streams which are at
EOF.
--- /project/slime/cvsroot/slime/ChangeLog 2008/10/30 09:28:43 1.1573
+++ /project/slime/cvsroot/slime/ChangeLog 2008/10/30 09:28:51 1.1574
@@ -1,5 +1,10 @@
2008-10-30 Helmut Eller <heller at common-lisp.net>
+ * swank-sbcl.lisp (wait-for-input): Return streams which are at
+ EOF.
+
+2008-10-30 Helmut Eller <heller at common-lisp.net>
+
* slime.el (slime-popup-buffer-quit): Call bury-buffer with
explicit argument for compatibility with XEmacs.
--- /project/slime/cvsroot/slime/swank-sbcl.lisp 2008/10/17 21:27:24 1.226
+++ /project/slime/cvsroot/slime/swank-sbcl.lisp 2008/10/30 09:28:51 1.227
@@ -176,13 +176,22 @@
(setq *wait-for-input-called* t))
(let ((*wait-for-input-called* nil))
(loop
- (let ((ready (remove-if-not #'listen streams)))
+ (let ((ready (remove-if (lambda (s)
+ (let ((c (read-char-no-hang s nil :eof)))
+ (case c
+ ((nil) t)
+ ((:eof) nil)
+ (t
+ (unread-char c s)
+ nil))))
+ streams)))
(when ready (return ready)))
(when timeout (return nil))
(when (check-slime-interrupts) (return :interrupt))
(when *wait-for-input-called* (return :interrupt))
(let* ((f (constantly t))
(handlers (loop for s in streams
+ do (assert (open-stream-p s))
collect (add-one-shot-handler s f))))
(unwind-protect
(sb-sys:serve-event 0.2)
More information about the slime-cvs
mailing list