changeset 109010:64f7d70035b7

* src/lread.c (read1): Phase out old-style backquotes a bit more.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 16 Jun 2010 10:10:02 -0400
parents 812d563cc192
children 6c39bda25895
files etc/NEWS src/ChangeLog src/lread.c
diffstat 3 files changed, 20 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/etc/NEWS	Wed Jun 16 15:42:59 2010 +0200
+++ b/etc/NEWS	Wed Jun 16 10:10:02 2010 -0400
@@ -257,7 +257,11 @@
 
 * 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.
--- a/src/ChangeLog	Wed Jun 16 15:42:59 2010 +0200
+++ b/src/ChangeLog	Wed Jun 16 10:10:02 2010 -0400
@@ -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.
--- a/src/lread.c	Wed Jun 16 15:42:59 2010 +0200
+++ b/src/lread.c	Wed Jun 16 10:10:02 2010 -0400
@@ -2683,7 +2683,17 @@
       }
 
     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;