diff options
author | Andreas Schwab <schwab@linux-m68k.org> | 2011-07-26 13:00:23 +0200 |
---|---|---|
committer | Andreas Schwab <schwab@linux-m68k.org> | 2011-07-26 13:00:23 +0200 |
commit | ea180610badb3df580d68e444f4418dce7929d17 (patch) | |
tree | 1656d42a484151bb3e2d120295b4af76b3460ad4 /src/fontset.c | |
parent | 7963fa061a06d3d3c3bd396246fbb17e6aad9f67 (diff) | |
download | emacs-ea180610badb3df580d68e444f4418dce7929d17.tar.gz |
* fontset.c (fontset_get_font_group): Add proper type checks.
(Bug#9172)
Diffstat (limited to 'src/fontset.c')
-rw-r--r-- | src/fontset.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/fontset.c b/src/fontset.c index 82e46c74347..c335a5642f9 100644 --- a/src/fontset.c +++ b/src/fontset.c @@ -463,7 +463,7 @@ reorder_font_vector (font_group, font) /* Return a font-group (actually a cons (-1 . FONT-GROUP-VECTOR)) for character C in FONTSET. If C is -1, return a fallback font-group. If C is not -1, the value may be Qt (FONTSET doesn't have a font - for C even in the fallback group, or 0 (a font for C may be found + for C even in the fallback group), or 0 (a font for C may be found only in the fallback group). */ static Lisp_Object @@ -481,7 +481,9 @@ fontset_get_font_group (Lisp_Object fontset, int c) if (! NILP (font_group)) return font_group; base_fontset = FONTSET_BASE (fontset); - if (c >= 0) + if (NILP (base_fontset)) + font_group = Qnil; + else if (c >= 0) font_group = char_table_ref_and_range (base_fontset, c, &from, &to); else font_group = FONTSET_FALLBACK (base_fontset); @@ -492,6 +494,8 @@ fontset_get_font_group (Lisp_Object fontset, int c) char_table_set_range (fontset, from, to, font_group); return font_group; } + if (!VECTORP (font_group)) + return font_group; font_group = Fcopy_sequence (font_group); for (i = 0; i < ASIZE (font_group); i++) if (! NILP (AREF (font_group, i))) |