"Stephen J. Turnbull" <stephen(a)xemacs.org> writes:
>>>>> "Nickolay" == Nickolay Pakoulin
<npak(a)ispras.ru> writes:
Nickolay> (defvar aaa ?\x9216)
This is parsed as (defvar aaa ?\x92 16).
You maybe should be getting a syntax error, since (char-int-p #x9216)
returns nil, even in Mule. However, '(?car) => (?c ar). And almost
surely defvar should complain bitterly about a non-string as a
docstring.
I'll document this in the manuals. "GNU compatibility" is never
going to happen here. (However, if the noises Ken'ichi Handa is
making mean anything, "XEmacs compatibility" may very well happen to
GNU Emacs.)
This seems related to the blowfish problem, it uses constants such as
?\x9216.
Why can't ?\x9216 parse as the integer 37398? Is there any way of
expressing a hex integer constant in XEmacs? ?\x9216 can be used for
this in Emacs:
?\x9216
=> 37398
case 'x':
/* A hex escape, as in ANSI C, except that we only allow latin-1
characters to be read this way. What is "\x4e03" supposed to
mean, anyways, if the internal representation is hidden?
One way of defining useful semantic would be to have it translate into
the hex integer 4E03. Declaring a character using its hex code seems
like nonsense, you must know the coding system too, and in that case
you use 'make-char'. Apart from the ASCII subset and perhaps also the
entire <256 space, for legacy reasons. So using it for integer
constants seems useful, but I may be missing something.