emacs-devel
[Top][All Lists]
Advanced

[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?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]