+2012-08-16 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Fix previous char table change.
+ * lisp.h (CHAR_TABLE_SET): Use sub_char_table_set_contents.
+ * chartab.c (optimize_sub_char_table): Likewise.
+
2012-08-16 Chong Yidong <cyd@gnu.org>
* gtkutil.c (xg_get_font): Demand an Xft font (Bug#3228).
elt = XSUB_CHAR_TABLE (table)->contents[0];
if (SUB_CHAR_TABLE_P (elt))
- elt = XSUB_CHAR_TABLE (table)->contents[0]
- = optimize_sub_char_table (elt, test);
+ {
+ elt = optimize_sub_char_table (elt, test);
+ sub_char_table_set_contents (table, 0, elt);
+ }
optimizable = SUB_CHAR_TABLE_P (elt) ? 0 : 1;
for (i = 1; i < chartab_size[depth]; i++)
{
this = XSUB_CHAR_TABLE (table)->contents[i];
if (SUB_CHAR_TABLE_P (this))
- this = XSUB_CHAR_TABLE (table)->contents[i]
- = optimize_sub_char_table (this, test);
+ {
+ this = optimize_sub_char_table (this, test);
+ sub_char_table_set_contents (table, i, this);
+ }
if (optimizable
&& (NILP (test) ? NILP (Fequal (this, elt)) /* defaults to `equal'. */
: EQ (test, Qeq) ? !EQ (this, elt) /* Optimize `eq' case. */
8-bit European characters. Do not check validity of CT. */
#define CHAR_TABLE_SET(CT, IDX, VAL) \
(ASCII_CHAR_P (IDX) && SUB_CHAR_TABLE_P (XCHAR_TABLE (CT)->ascii) \
- ? XSUB_CHAR_TABLE (XCHAR_TABLE (CT)->ascii)->contents[IDX] = VAL \
+ ? sub_char_table_set_contents (XCHAR_TABLE (CT)->ascii, IDX, VAL) \
: char_table_set (CT, IDX, VAL))
enum CHARTAB_SIZE_BITS