]> code.delx.au - gnu-emacs/commitdiff
* src/lread.c (read1): Phase out old-style backquotes a bit more.
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 16 Jun 2010 14:10:02 +0000 (10:10 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 16 Jun 2010 14:10:02 +0000 (10:10 -0400)
etc/NEWS
src/ChangeLog
src/lread.c

index 60de0a286f3026bfe4ec288a8ba7e0414042b0a0..b881edfb3b4534e8da26a82baef29e7cb0488a73 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -257,7 +257,11 @@ Notifications API.  It requires D-Bus for communication.
 \f
 * Incompatible Lisp Changes in Emacs 24.1
 
+** A backquote not followed by a space is now always treated as new-style.
+
 ** Test for special mode-class was moved from view-file to view-buffer.
+FIXME: This only says what was changed, but not what are the
+programmer-visible consequences.
 
 ** Passing a nil argument to a minor mode function now turns the mode
    ON unconditionally.
index 3e6c8f243984f3e647b3272dbc7f42012e15e141..799680498eab5d5dc9fb8838d2cdfba48fefb961 100644 (file)
@@ -1,3 +1,7 @@
+2010-06-16  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * lread.c (read1): Phase out old-style backquotes a bit more.
+
 2010-06-12  Eli Zaretskii  <eliz@gnu.org>
 
        * makefile.w32-in ($(BLD)/bidi.$(O)): Depend on biditype.h and
@@ -7,8 +11,7 @@
 
        * bidi.c (bidi_initialize): Remove explicit initialization of
        bidi_type_table; include biditype.h instead.  Don't support
-       entries whose second codepoint is zero.  Initialize
-       bidi_mirror_table.
+       entries whose second codepoint is zero.  Initialize bidi_mirror_table.
        (bidi_mirror_char): Use bidi_mirror_table.
 
        * biditype.h: New file.
index 3a77a62b27f8d7d5b43415c591dfb4fe82fbd7f6..c73f7f32e5197e391f12bdae267d56e2d978a4ee 100644 (file)
@@ -2683,7 +2683,17 @@ read1 (readcharfun, pch, first_in_list)
       }
 
     case '`':
-      if (first_in_list)
+      /* Transition from old-style to new-style:
+        If we see "(`" it used to mean old-style, which usually works
+        fine because ` should almost never appear in such a position
+        for new-style.  But occasionally we need "(`" to mean new
+        style, so we try to distinguish the two by the fact that we
+        can either write "( `foo" or "(` foo", where the first
+        intends to use new-style whereas the second intends to use
+        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;