Gabor Melis mega@hotpop.com writes:
Reading a line from *query-io* two makes the next read-line return an empty string. Tested under cmucl/sbcl-mt with sigio/spawn.
...
CL-USER> (foo) 1 2 ("1" "" "2")
Gabor
I've run into a possibly similar problem with the slime repl for code that has a (read-line) following a (read). I'm running cmucl (April snapshot) with emacs 2.3.1. I'm using the CVS tarball of the 15th, and I've had the problem for at least a couple of weeks but I didn't report it because I thought I was doing something wrong in the more complex queries of my real program.
The following stripped-down example runs okay with an empty (read-line) -- labeled as a hack in the listing. The original code runs properly in a terminal or under inferior-lisp-mode without slime.
;; ------- code follows (defvar value "") (defvar number "")
(format t "Enter a number: ") (setf number (read))
;;; **** HACK (when (find-package "SWANK-LOADER") (read-line))
(format t "Enter a string: ") (setf value (read-line))
(format t "NUMBER is now: ~A~%" number) (format t "VALUE is now: ~A~%" value)
;; ------- end of code
;; ------- output with the hack commented out
CL-USER> (load #P"/home/loydf/pinfo/librarian/junk.lisp") ; Loading #p"/home/loydf/pinfo/librarian/junk.lisp". Enter a number: 3 Enter a string: NUMBER is now: 3 VALUE is now: T
;; ------- end of output
I get no chance to enter an answer to the second real query. Similar code with a (read) following a (read-line) seems to run okay.