keke at gol.com
Wed Apr 25 05:36:43 UTC 2007
Gary Byers wrote:
> My first reaction is that IOBLOCK-LITERAL-CHAR-CODE-LIMIT - which is
> inherited from a similarly-named field in the CHARACTER-ENCODING -
> should be #xd800 for all variants of UTF-16 (e.g.,
> CHARACTER-ENCODING-LITERAL-CHAR-CODE-LIMIT should be set to #xd800 in
> the UTF-16 CHARACTER-ENCODINGs.)
> What I called the "literal-char-code-limit" is supposed to be the
> exclusive upper bound on char-codes that can be passed through without
> translation. (The result of calling the decode/encode function should
> be the same as the result of directly using the argument in those cases.)
ioblock-literal-char-code-limit is also used by the writer -
%ioblock-write-u16-encoded-char, and the current value of #x10000
is correct for it.
Dropping the test (in %ioblock-read-u16-encoded-char) should be ok
if we can assume that there is no other encoding that may use
%ioblock-read-u16-encoded-char (I cannot think of any).
> (I haven't looked at this yet and might be misremembering something;
> it's clearly the case that we want to do translation on some code
> units >= #xd800 when decoding UTF-16, but I'm not 100% sure that the
> parenthesised assertion above is correct.)
"Faced with a choice, do both (given by Dieter Rot)."
More information about the Openmcl-devel