Bug Info (also see Version Info below):
I believe I have found a bug in CLISP involving read-preserving-whitespace. It would seem that if you enter a quoted object to read-preserving-whitespace, it will eat the whitespace character immediately following the object (typically a newline). This can be demonstrated with the following test case (under CLISP 2.42 mingw small):
[7]> (progn (read-preserving-whitespace) (read-char-no-hang))
'a
NIL
[8]> (progn (read-preserving-whitespace) (read-char-no-hang))
a
#\Newline
Under SBCL, this works properly:
* (progn (read-preserving-whitespace) (read-char-no-hang))
'a
#\Newline
* (progn (read-preserving-whitespace) (read-char-no-hang))
a
#\Newline
Note that it only eats up one whitespace character, so if you enter a space following 'a before the newline, then it seems to get the newline properly:
[9]> (progn (read-preserving-whitespace) (read-char-no-hang))
'a[#\Space]
#\Newline
Version Info:
Windows XP SP 2. Using clisp-2.42-win32-with-readline-and-gettext.zip, downloaded on about 2007-11-21. Also tried clisp-2.44-win32-mingw-big-install.exe.
> clisp --version
GNU CLISP 2.42 (2007-10-16) (built on stnt067 [192.168.0.1])
Software: GNU C 3.4.5 (mingw special)
gcc -mno-cygwin -O2 -W -Wswitch -Wcomment -Wpointer-arith -Wimplicit -Wreturn-ty
pe -Wmissing-declarations -Wno-sign-compare -O2 -fexpensive-optimizations -falig
n-functions=4 -D_WIN32 -DUNICODE -DDYNAMIC_FFI -I. -x none /usr/local/lib/libint
l.a -L/usr/local/lib -L/mingw/lib /usr/local/lib/libiconv.a -L/usr/local/lib lib
charset.a libavcall.a libcallback.a /usr/local/lib/libreadline.a -ltermcap -lus
er32 -lws2_32 -lole32 -loleaut32 -luuid /usr/local/lib/libiconv.a -L/usr/local/l
ib -L/mingw/lib -L/usr/local/lib -lsigsegv
SAFETY=0 HEAPCODES STANDARD_HEAPCODES GENERATIONAL_GC SPVW_BLOCKS SPVW_MIXED TRI
VIALMAP_MEMORY
libsigsegv 2.4
libiconv 1.11
libreadline 5.0
Features:
(READLINE REGEXP SYSCALLS I18N LOOP COMPILER CLOS MOP CLISP ANSI-CL COMMON-LISP
LISP=CL INTERPRETER SOCKETS GENERIC-STREAMS LOGICAL-PATHNAMES SCREEN FFI
GETTEXT UNICODE BASE-CHAR=CHARACTER PC386 WIN32)
C Modules: (clisp i18n syscalls regexp readline)
Installation directory: C:\Program Files\clisp-2.42\
User language: ENGLISH
Machine: PC/386 (PC/?86) blackthorn [128.54.223.161]
Logged In: YES
user_id=5735
Originator: NO
thank you for your bug report.
the bug has been fixed in the CVS tree.
you can either wait for the next release (recommended)
or check out the current CVS tree (see http://clisp.cons.org\)
and build CLISP from the sources (be advised that between
releases the CVS tree is very unstable and may not even build
on your platform).