emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r103672: * src/print.c (PRINT_CIRCLE_


From: Stefan Monnier
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r103672: * src/print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
Date: Wed, 16 Mar 2011 13:34:26 -0400
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 103672
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Wed 2011-03-16 13:34:26 -0400
message:
  * src/print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
  (print_preprocess, print_object): New macro to fix last change.
modified:
  src/ChangeLog
  src/print.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2011-03-16 14:23:26 +0000
+++ b/src/ChangeLog     2011-03-16 17:34:26 +0000
@@ -1,5 +1,8 @@
 2011-03-16  Stefan Monnier  <address@hidden>
 
+       * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
+       (print_preprocess, print_object): New macro to fix last change.
+
        * print.c (print_preprocess): Don't forget font objects.
 
 2011-03-16  Juanma Barranquero  <address@hidden>

=== modified file 'src/print.c'
--- a/src/print.c       2011-03-16 14:23:26 +0000
+++ b/src/print.c       2011-03-16 17:34:26 +0000
@@ -1173,6 +1173,16 @@
   print_object (obj, printcharfun, escapeflag);
 }
 
+#define PRINT_CIRCLE_CANDIDATE_P(obj)                                  \
+  (STRINGP (obj) || CONSP (obj)                                                
\
+   || (VECTORLIKEP (obj)                                               \
+      && (VECTORP (obj) || COMPILEDP (obj)                             \
+         || CHAR_TABLE_P (obj) || SUB_CHAR_TABLE_P (obj)               \
+         || HASH_TABLE_P (obj) || FONTP (obj)))                        \
+   || (! NILP (Vprint_gensym)                                          \
+       && SYMBOLP (obj)                                                        
\
+       && !SYMBOL_INTERNED_P (obj)))
+
 /* Construct Vprint_number_table according to the structure of OBJ.
    OBJ itself and all its elements will be added to Vprint_number_table
    recursively if it is a list, vector, compiled function, char-table,
@@ -1207,12 +1217,7 @@
   halftail = obj;
 
  loop:
-  if (STRINGP (obj) || CONSP (obj) || VECTORP (obj)
-      || COMPILEDP (obj) || CHAR_TABLE_P (obj) || SUB_CHAR_TABLE_P (obj)
-      || HASH_TABLE_P (obj) || FONTP (obj)
-      || (! NILP (Vprint_gensym)
-         && SYMBOLP (obj)
-         && !SYMBOL_INTERNED_P (obj)))
+  if (PRINT_CIRCLE_CANDIDATE_P (obj))
     {
       if (!HASH_TABLE_P (Vprint_number_table))
        {
@@ -1389,12 +1394,7 @@
     error ("Apparently circular structure being printed");
 
   /* Detect circularities and truncate them.  */
-  if (STRINGP (obj) || CONSP (obj) || VECTORP (obj)
-      || COMPILEDP (obj) || CHAR_TABLE_P (obj) || SUB_CHAR_TABLE_P (obj)
-      || HASH_TABLE_P (obj)
-      || (! NILP (Vprint_gensym)
-         && SYMBOLP (obj)
-         && !SYMBOL_INTERNED_P (obj)))
+  if (PRINT_CIRCLE_CANDIDATE_P (obj))
     {
       if (NILP (Vprint_circle) && NILP (Vprint_gensym))
        {


reply via email to

[Prev in Thread] Current Thread [Next in Thread]