(defun qbook-semicolon-reader (stream char)
(declare (ignore char))
(with-output-to-string (line)
(loop
for next-char = (read-char stream nil stream t)
if (or (eq next-char stream)
(char= next-char #\Newline))
do (return)
else
do (write-char next-char line))))
Source Context