summaryrefslogtreecommitdiff
path: root/src/print.c
diff options
context:
space:
mode:
authorMiles Bader <miles@gnu.org>2007-08-13 13:41:28 +0000
committerMiles Bader <miles@gnu.org>2007-08-13 13:41:28 +0000
commit37cc095b6a175fb5a2fb18fa029eaf3aa3b3fa53 (patch)
tree7fb68e80f66e55100c48b9751cf70c74af2d4bf1 /src/print.c
parent031b6333283be57d971e557b83da31c6be937b0a (diff)
parent9d2db4c6637fe37d75f947063bcb2ecce319a1bc (diff)
downloademacs-37cc095b6a175fb5a2fb18fa029eaf3aa3b3fa53.tar.gz
emacs-37cc095b6a175fb5a2fb18fa029eaf3aa3b3fa53.tar.bz2
emacs-37cc095b6a175fb5a2fb18fa029eaf3aa3b3fa53.zip
Merge from emacs--rel--22
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-851
Diffstat (limited to 'src/print.c')
-rw-r--r--src/print.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/print.c b/src/print.c
index f7060024f32..cae80d1acfe 100644
--- a/src/print.c
+++ b/src/print.c
@@ -93,8 +93,8 @@ Lisp_Object Vfloat_output_format, Qfloat_output_format;
/* 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 @@ print (obj, printcharfun, escapeflag)
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 (obj, printcharfun, escapeflag)
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 (obj, printcharfun, escapeflag)
print_object (Qbackquote, printcharfun, 0);
PRINTCHAR (' ');
- ++old_backquote_output;
print_object (XCAR (XCDR (tem)), printcharfun, 0);
- --old_backquote_output;
PRINTCHAR (')');
obj = XCDR (obj);