From 15c1107a30c274e0d5451b4428efc613edabbdce Mon Sep 17 00:00:00 2001 From: Dmitry Antipov Date: Wed, 2 Jul 2014 18:00:41 +0400 Subject: [PATCH] * print.c (print_object): Adjust to match new layout of sub char-table (Bug#17898). --- src/ChangeLog | 1 + src/print.c | 12 ++++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 3df37a69527..05916477140 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -15,6 +15,7 @@ (map_sub_char_table_for_charset, uniprop_table_uncompress): All related users changed. * lread.c (read1): Adjust to match new layout of sub char-table. + * print.c (print_object): Likewise (Bug#17898). 2014-07-02 Stefan Monnier diff --git a/src/print.c b/src/print.c index 9b3620765a8..2f52f5d03ec 100644 --- a/src/print.c +++ b/src/print.c @@ -1981,16 +1981,24 @@ print_object (Lisp_Object obj, Lisp_Object printcharfun, bool escapeflag) PRINTCHAR ('['); { - register int i; + int i, idx = SUB_CHAR_TABLE_P (obj) ? SUB_CHAR_TABLE_OFFSET : 0; register Lisp_Object tem; ptrdiff_t real_size = size; + /* For a sub char-table, print heading non-Lisp data first. */ + if (SUB_CHAR_TABLE_P (obj)) + { + i = sprintf (buf, "%d %d", XSUB_CHAR_TABLE (obj)->depth, + XSUB_CHAR_TABLE (obj)->min_char); + strout (buf, i, i, printcharfun); + } + /* Don't print more elements than the specified maximum. */ if (NATNUMP (Vprint_length) && XFASTINT (Vprint_length) < size) size = XFASTINT (Vprint_length); - for (i = 0; i < size; i++) + for (i = idx; i < size; i++) { if (i) PRINTCHAR (' '); tem = AREF (obj, i); -- 2.39.5