aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard M. Stallman1999-10-09 22:58:37 +0000
committerRichard M. Stallman1999-10-09 22:58:37 +0000
commit73fb36f17c1ca1a9c58ad936398f37515635fcf1 (patch)
treeb93a007ce2ce32b76ffebd1e2b303d7d3c058bc7 /src
parent85177c862b21fd10dabf288559a56558be5c6ba5 (diff)
downloademacs-73fb36f17c1ca1a9c58ad936398f37515635fcf1.tar.gz
emacs-73fb36f17c1ca1a9c58ad936398f37515635fcf1.zip
(print): When removing objects from Vprint_number_table,
only scan the newly added objects. (print_preprocess): If OBJ is a gensym, and print-continuous-numbering, unconditionally force it to stay in the table.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog7
-rw-r--r--src/print.c11
2 files changed, 16 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 920f22046c6..fa10ff354d0 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,10 @@
11999-10-09 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2
3 * print.c (print): When removing objects from Vprint_number_table,
4 only scan the newly added objects.
5 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
6 unconditionally force it to stay in the table.
7
11999-10-09 Gerd Moellmann <gerd@gnu.org> 81999-10-09 Gerd Moellmann <gerd@gnu.org>
2 9
3 * xfns.c (prepare_image_for_display): Don't try to load image if 10 * xfns.c (prepare_image_for_display): Don't try to load image if
diff --git a/src/print.c b/src/print.c
index d6c85717f01..dc28ed0ce11 100644
--- a/src/print.c
+++ b/src/print.c
@@ -1069,12 +1069,13 @@ print (obj, printcharfun, escapeflag)
1069 /* Construct Vprint_number_table for print-gensym and print-circle. */ 1069 /* Construct Vprint_number_table for print-gensym and print-circle. */
1070 if (!NILP (Vprint_gensym) || !NILP (Vprint_circle)) 1070 if (!NILP (Vprint_gensym) || !NILP (Vprint_circle))
1071 { 1071 {
1072 int i, index = 0; 1072 int i, start, index;
1073 /* Construct Vprint_number_table. */ 1073 /* Construct Vprint_number_table. */
1074 start = index = print_number_index;
1074 print_preprocess (obj); 1075 print_preprocess (obj);
1075 /* Remove unnecessary objects, which appear only once in OBJ; 1076 /* Remove unnecessary objects, which appear only once in OBJ;
1076 that is, whose status is Qnil. */ 1077 that is, whose status is Qnil. */
1077 for (i = 0; i < print_number_index; i++) 1078 for (i = start; i < print_number_index; i++)
1078 if (!NILP (PRINT_NUMBER_STATUS (Vprint_number_table, i))) 1079 if (!NILP (PRINT_NUMBER_STATUS (Vprint_number_table, i)))
1079 { 1080 {
1080 PRINT_NUMBER_OBJECT (Vprint_number_table, index) 1081 PRINT_NUMBER_OBJECT (Vprint_number_table, index)
@@ -1138,6 +1139,12 @@ print_preprocess (obj)
1138 } 1139 }
1139 } 1140 }
1140 PRINT_NUMBER_OBJECT (Vprint_number_table, print_number_index) = obj; 1141 PRINT_NUMBER_OBJECT (Vprint_number_table, print_number_index) = obj;
1142 /* If Vprint_continuous_numbering is non-nil and OBJ is a gensym,
1143 always print the gensym with a number. This is a special for
1144 the lisp function byte-compile-output-docform. */
1145 if (! NILP (Vprint_continuous_numbering) && SYMBOLP (obj)
1146 && NILP (XSYMBOL (obj)->obarray))
1147 PRINT_NUMBER_STATUS (Vprint_number_table, print_number_index) = Qt;
1141 print_number_index++; 1148 print_number_index++;
1142 1149
1143 switch (XGCTYPE (obj)) 1150 switch (XGCTYPE (obj))