[cmucl-ticket] [cmucl] #43: unread-char doesn't change file-position
cmucl
cmucl-devel at common-lisp.net
Thu Mar 3 06:18:38 UTC 2011
#43: unread-char doesn't change file-position
---------------------+------------------------------------------------------
Reporter: rtoy | Owner:
Type: defect | Status: new
Priority: major | Milestone:
Component: Unicode | Version: 20b
Keywords: |
---------------------+------------------------------------------------------
This test is from Douglas Crosher, on the maxima mailing list.
{{{
(with-open-file (ostream "ctest.txt" :direction :output
:external-format #+clisp "utf-8" #-clisp :utf-8)
(dotimes (i 1000)
(write-char (code-char #x1234) ostream)))
(with-open-file (stream "ctest.txt" :direction :input
:external-format #+clisp "utf-8" #-clisp :utf-8)
(let ((p0 (file-position stream))
(ch (read-char stream)))
(unread-char ch stream)
(let ((p0* (file-position stream)))
(if (eql p0* p0) "Ok" "Broken"))))
}}}
Cmucl returns "Broken" because {{{p0}}} = 0 but {{{p0*}}} = 2. I think
{{{unread-char}}} didn't update everything needed by our unicode stream
buffers.
--
Ticket URL: <http://trac.common-lisp.net/cmucl/ticket/43>
cmucl <http://common-lisp.net/project/cmucl>
Cmucl is a high-performance, free Common Lisp implementation.
More information about the cmucl-ticket
mailing list