Subject: bug#6490: 24.0.50; src/lread.c: old style backquote bug?

From: Stefan Monnier <[email-masked]>
Date: Sun, 04 Jul 2010 23:50:26 +0200

>> > Attached patch for Emacs fixes this error.
>> I'm glad the patch fixes things for you, since this patch indeed looks
>> perfectly harmless, but I'm a bit puzzled because it doesn't just look
>> harmless: it looks to me like the patch does change anything to the way
>> the code works.  So could you explain to me how&why the patch fixes
>> the problem?  I'm probably just overlooking some "obvious" detail,

> The changes committed in rev:100605 reassigns the next character to
> the variable `c'.  When the next character is SPC (32, #o40, #x20),
> old style backquote is detected.

>   if (first_in_list && (c = READCHAR, UNREAD (c), c == ' '))
>     {
>       Vold_style_backquotes = Qt;
>       goto default_label;
>     }

> But backquote handling is skipped because `c' is SPC.

>     default_label:
>       if (c <= 040) goto retry;

>       ... old style backquote handling ...

> My patch avoids reassignment of `c' not to skip old style
> backquote handling.

Thanks, that makes perfect sense now.  I've installed it now.

> To keep more compatibility with released Emacs, it is preferable to
> allow a character such as \r or \n after the old style backquote.

I haven't seen any such situation yet, and since old-style backquotes are
on the way out (effectively obsolete since something like Emacs-20, and
officially obsolete since Emacs-22.1), I'll wait to see actual cases
before adding such exceptions,

        Stefan