[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#6490: 24.0.50; src/lread.c: old style backquote bug?
From: |
Stefan Monnier |
Subject: |
bug#6490: 24.0.50; src/lread.c: old style backquote bug? |
Date: |
Wed, 23 Jun 2010 00:23:15 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) |
> 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,
Stefan
> === modified file 'src/lread.c'
> --- src/lread.c 2010-06-16 14:10:02 +0000
> +++ src/lread.c 2010-06-22 07:48:58 +0000
> @@ -2693,21 +2693,26 @@
> old-style. For Emacs-25, we should completely remove this
> first_in_list exception (old-style can still be obtained via
> "(\`" anyway). */
> - if (first_in_list && (c = READCHAR, UNREAD (c), c == ' '))
> - {
> - Vold_style_backquotes = Qt;
> - goto default_label;
> - }
> - else
> - {
> - Lisp_Object value;
> -
> - new_backquote_flag++;
> - value = read0 (readcharfun);
> - new_backquote_flag--;
> -
> - return Fcons (Qbackquote, Fcons (value, Qnil));
> - }
> + {
> + int next_char = READCHAR;
> + UNREAD (next_char);
> +
> + if (first_in_list && next_char == ' ')
> + {
> + Vold_style_backquotes = Qt;
> + goto default_label;
> + }
> + else
> + {
> + Lisp_Object value;
> +
> + new_backquote_flag++;
> + value = read0 (readcharfun);
> + new_backquote_flag--;
> +
> + return Fcons (Qbackquote, Fcons (value, Qnil));
> + }
> + }
> case ',':
> if (new_backquote_flag)