X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fbuffer.h;h=b9853b6c7d79660d9d26d545fbe0be5d42a7c040;hb=28fb3e53a6269151cdcfd5384b221cb58eab5910;hp=dc89a68256e9fe4574539a7c9672564bbe1138f0;hpb=b10ee70be2e0ce31599b05e9d58f83fc92141de0;p=chise%2Fxemacs-chise.git- diff --git a/src/buffer.h b/src/buffer.h index dc89a68..b9853b6 100644 --- a/src/buffer.h +++ b/src/buffer.h @@ -140,6 +140,9 @@ struct buffer 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 @@ -1375,14 +1378,42 @@ INLINE_HEADER Emchar 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