comparison src/fontset.c @ 100168:acef56f002fc

(face_for_char): Handle invalid charset property correctly. (font_for_char): Likewise.
author Kenichi Handa <handa@m17n.org>
date Wed, 03 Dec 2008 05:30:14 +0000
parents 0a43374c0145
children e038c1a8307c
comparison
equal deleted inserted replaced
100167:b80052504b85 100168:acef56f002fc
892 charset = Qnil; 892 charset = Qnil;
893 } 893 }
894 else 894 else
895 { 895 {
896 charset = Fget_char_property (make_number (pos), Qcharset, object); 896 charset = Fget_char_property (make_number (pos), Qcharset, object);
897 if (NILP (charset)) 897 if (CHARSETP (charset))
898 id = -1;
899 else if (CHARSETP (charset))
900 { 898 {
901 Lisp_Object val; 899 Lisp_Object val;
902 900
903 val = assoc_no_quit (charset, Vfont_encoding_charset_alist); 901 val = assoc_no_quit (charset, Vfont_encoding_charset_alist);
904 if (CONSP (val) && CHARSETP (XCDR (val))) 902 if (CONSP (val) && CHARSETP (XCDR (val)))
905 charset = XCDR (val); 903 charset = XCDR (val);
906 id = XINT (CHARSET_SYMBOL_ID (charset)); 904 id = XINT (CHARSET_SYMBOL_ID (charset));
907 } 905 }
906 else
907 id = -1;
908 } 908 }
909 909
910 font_deferred_log ("font for", Fcons (make_number (c), charset), Qnil); 910 font_deferred_log ("font for", Fcons (make_number (c), charset), Qnil);
911 rfont_def = fontset_font (fontset, c, face, id); 911 rfont_def = fontset_font (fontset, c, face, id);
912 if (VECTORP (rfont_def)) 912 if (VECTORP (rfont_def))
964 charset = Qnil; 964 charset = Qnil;
965 } 965 }
966 else 966 else
967 { 967 {
968 charset = Fget_char_property (make_number (pos), Qcharset, object); 968 charset = Fget_char_property (make_number (pos), Qcharset, object);
969 if (NILP (charset)) 969 if (CHARSETP (charset))
970 id = -1;
971 else if (CHARSETP (charset))
972 { 970 {
973 Lisp_Object val; 971 Lisp_Object val;
974 972
975 val = assoc_no_quit (charset, Vfont_encoding_charset_alist); 973 val = assoc_no_quit (charset, Vfont_encoding_charset_alist);
976 if (CONSP (val) && CHARSETP (XCDR (val))) 974 if (CONSP (val) && CHARSETP (XCDR (val)))
977 charset = XCDR (val); 975 charset = XCDR (val);
978 id = XINT (CHARSET_SYMBOL_ID (charset)); 976 id = XINT (CHARSET_SYMBOL_ID (charset));
979 } 977 }
978 else
979 id = -1;
980 } 980 }
981 981
982 font_deferred_log ("font for", Fcons (make_number (c), charset), Qnil); 982 font_deferred_log ("font for", Fcons (make_number (c), charset), Qnil);
983 rfont_def = fontset_font (fontset, c, face, id); 983 rfont_def = fontset_font (fontset, c, face, id);
984 return (VECTORP (rfont_def) 984 return (VECTORP (rfont_def)