int encode_builtin_char_1 (Emchar c, Lisp_Object* charset);
int range_charset_code_point (Lisp_Object charset, Emchar ch);
-int charset_code_point (Lisp_Object charset, Emchar ch);
+
+INLINE int charset_code_point (Lisp_Object charset, Emchar ch);
+INLINE int
+charset_code_point (Lisp_Object charset, Emchar ch)
+{
+ Lisp_Object cdef = get_char_code_table (ch, Vcharacter_attribute_table);
+
+ if (!NILP (cdef))
+ {
+ Lisp_Object field = Fassq (charset, cdef);
+
+ if (!NILP (field))
+ return XINT (Fcdr (field));
+ }
+ return range_charset_code_point (charset, ch);
+}
extern Lisp_Object Vdefault_coded_charset_priority_list;
EXFUN (Ffind_charset, 1);
return encode_builtin_char_1 (c, charset);
}
+#define ENCODE_CHAR(ch, charset) encode_char_1 (ch, &(charset))
+
INLINE void breakup_char_1 (Emchar c, Lisp_Object *charset, int *c1, int *c2);
INLINE void
breakup_char_1 (Emchar c, Lisp_Object *charset, int *c1, int *c2)