int face_change; /* This is set when a change in how the text should
be displayed (e.g., font, color) is made. */
+ /* Whether buffer specific face is specified. */
+ int buffer_local_face_property;
+
/* change data indicating what portion of the text has changed
since the last time this was reset. Used by redisplay.
Logically we should keep this with the text structure, but
TRT_TABLE_CHAR_1 (Lisp_Object table, Emchar ch)
{
Lisp_Object TRT_char;
- TRT_char = get_char_table (ch, XCHAR_TABLE (table));
+#ifdef UTF2000
+ if (CHAR_TABLEP (table))
+ TRT_char = get_char_table (ch, XCHAR_TABLE (table));
+ else
+ {
+ TRT_char = Fget_char_attribute (make_char (ch), table, Qnil);
+ if (CONSP (TRT_char))
+ {
+ TRT_char = XCAR (TRT_char);
+ if (CONSP (TRT_char))
+ TRT_char = Ffind_char (TRT_char);
+ }
+ }
+#else
+ TRT_char = get_char_table (ch, XCHAR_TABLE (table));
+#endif
if (NILP (TRT_char))
return ch;
else
return XCHAR (TRT_char);
}
+#ifdef UTF2000
+INLINE_HEADER Lisp_Object
+SET_TRT_TABLE_CHAR_1 (Lisp_Object table, Emchar ch1, Emchar ch2);
+INLINE_HEADER Lisp_Object
+SET_TRT_TABLE_CHAR_1 (Lisp_Object table, Emchar ch1, Emchar ch2)
+{
+ if (CHAR_TABLEP (table))
+ return Fput_char_table (make_char (ch1), make_char (ch2), table);
+ else
+ return Fput_char_attribute (make_char (ch1), table, make_char (ch2));
+}
+#else
#define SET_TRT_TABLE_CHAR_1(table, ch1, ch2) \
Fput_char_table (make_char (ch1), make_char (ch2), table);
+#endif
INLINE_HEADER Emchar TRT_TABLE_OF (Lisp_Object trt, Emchar c);
INLINE_HEADER Emchar