changeset 78524:30f73a22d4ce

(new_backquote_output): Rename from old_backquote_output. (print): Inverse its logic (according to its name) so as to match the behavior of new_backquote_flag in lread.c.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Fri, 10 Aug 2007 08:01:30 +0000
parents 437c27340640
children 33690fc4e175
files src/ChangeLog src/print.c
diffstat 2 files changed, 20 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Fri Aug 10 06:52:54 2007 +0000
+++ b/src/ChangeLog	Fri Aug 10 08:01:30 2007 +0000
@@ -1,3 +1,9 @@
+2007-08-10  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* print.c (new_backquote_output): Rename from old_backquote_output.
+	(print): Inverse its logic (according to its name) so as to match the
+	behavior of new_backquote_flag in lread.c.
+
 2007-08-09  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
 	* gmalloc.c (posix_memalign): New function.
--- a/src/print.c	Fri Aug 10 06:52:54 2007 +0000
+++ b/src/print.c	Fri Aug 10 08:01:30 2007 +0000
@@ -93,8 +93,8 @@
 /* Avoid actual stack overflow in print.  */
 int print_depth;
 
-/* Nonzero if inside outputting backquote in old style.  */
-int old_backquote_output;
+/* Level of nesting inside outputting backquote in new style.  */
+int new_backquote_output;
 
 /* Detect most circularities to print finite output.  */
 #define PRINT_CIRCLE 200
@@ -1291,7 +1291,7 @@
      register Lisp_Object printcharfun;
      int escapeflag;
 {
-  old_backquote_output = 0;
+  new_backquote_output = 0;
 
   /* Reset print_number_index and Vprint_number_table only when
      the variable Vprint_continuous_numbering is nil.  Otherwise,
@@ -1756,14 +1756,24 @@
 	  print_object (XCAR (XCDR (obj)), printcharfun, escapeflag);
 	}
       else if (print_quoted && CONSP (XCDR (obj)) && NILP (XCDR (XCDR (obj)))
-	       && ! old_backquote_output
+	       && ((EQ (XCAR (obj), Qbackquote))))
+	{
+	  print_object (XCAR (obj), printcharfun, 0);
+	  new_backquote_output++;
+	  print_object (XCAR (XCDR (obj)), printcharfun, escapeflag);
+	  new_backquote_output--;
+	}
+      else if (print_quoted && CONSP (XCDR (obj)) && NILP (XCDR (XCDR (obj)))
+	       && new_backquote_output
 	       && ((EQ (XCAR (obj), Qbackquote)
 		    || EQ (XCAR (obj), Qcomma)
 		    || EQ (XCAR (obj), Qcomma_at)
 		    || EQ (XCAR (obj), Qcomma_dot))))
 	{
 	  print_object (XCAR (obj), printcharfun, 0);
+	  new_backquote_output--;
 	  print_object (XCAR (XCDR (obj)), printcharfun, escapeflag);
+	  new_backquote_output++;
 	}
       else
 	{
@@ -1783,9 +1793,7 @@
 	      print_object (Qbackquote, printcharfun, 0);
 	      PRINTCHAR (' ');
 
-	      ++old_backquote_output;
 	      print_object (XCAR (XCDR (tem)), printcharfun, 0);
-	      --old_backquote_output;
 	      PRINTCHAR (')');
 
 	      obj = XCDR (obj);