Mercurial > emacs
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) |