[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: crash in emacs-21.1
From: |
Gerd Moellmann |
Subject: |
Re: crash in emacs-21.1 |
Date: |
28 Oct 2001 18:44:08 +0100 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.1.50 |
Richard Stallman <address@hidden> writes:
> 2. Why do they crash?
>
> if (STRINGP (args[1]) && STRING_MULTIBYTE (args[1]))
> /* BYTECODE-STRING must have been produced by Emacs 20.2 or the
> earlier because they produced a raw 8-bit string for byte-code
> and now such a byte-code string is loaded as multibyte while
> raw 8-bit characters converted to multibyte form. Thus, now we
> must convert them back to the original unibyte form. */
> args[1] = Fstring_as_unibyte (args[1]);
>
> This was a real change, but it seems that older .elc files can still
> be loaded successfully--if the comment is accurate.
Fstring_as_unibyte calls string_as_unibyte which is
int
str_as_unibyte (str, bytes)
unsigned char *str;
int bytes;
{
unsigned char *p = str, *endp = str + bytes;
unsigned char *to = str;
while (p < endp && *p != LEADING_CODE_8_BIT_CONTROL) p++;
to = p;
while (p < endp)
{
if (*p == LEADING_CODE_8_BIT_CONTROL)
*to++ = *(p + 1) - 0x20, p += 2;
else
*to++ = *p++;
}
return (to - str);
}
Isn't the handling of #x9e (LEADING_CODE_8_BIT_CONTROL) incompatible
in the case?