aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/fontset.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/fontset.c b/src/fontset.c
index c6aac929b2a..675683b819b 100644
--- a/src/fontset.c
+++ b/src/fontset.c
@@ -465,7 +465,8 @@ reorder_font_vector (fontset_element)
465 for (i = 0; i < size; i++) 465 for (i = 0; i < size; i++)
466 { 466 {
467 font_def = AREF (fontset_element, i + 3); 467 font_def = AREF (fontset_element, i + 3);
468 if (! NILP (AREF (font_def, 2))) 468 if (VECTORP (AREF (font_def, 2))
469 && INTEGERP (AREF (AREF (font_def, 2), 1)))
469 charset_id_table[i] = XINT (AREF (AREF (font_def, 2), 1)); 470 charset_id_table[i] = XINT (AREF (AREF (font_def, 2), 1));
470 else 471 else
471 charset_id_table[i] = -1; 472 charset_id_table[i] = -1;
@@ -547,7 +548,7 @@ fontset_find_font (fontset, c, face, id, fallback)
547 struct face *face; 548 struct face *face;
548 int id, fallback; 549 int id, fallback;
549{ 550{
550 Lisp_Object base_fontset, elt, vec; 551 Lisp_Object base_fontset, elt, vec, font_def;
551 int i, from, to; 552 int i, from, to;
552 int font_idx; 553 int font_idx;
553 FRAME_PTR f = XFRAME (FONTSET_FRAME (fontset)); 554 FRAME_PTR f = XFRAME (FONTSET_FRAME (fontset));
@@ -604,7 +605,7 @@ fontset_find_font (fontset, c, face, id, fallback)
604 && enable_font_backend 605 && enable_font_backend
605 && EQ (base_fontset, Vdefault_fontset)) 606 && EQ (base_fontset, Vdefault_fontset))
606 { 607 {
607 Lisp_Object script, font_spec, tmp; 608 Lisp_Object script, font_spec;
608 609
609 script = CHAR_TABLE_REF (Vchar_script_table, c); 610 script = CHAR_TABLE_REF (Vchar_script_table, c);
610 if (NILP (script)) 611 if (NILP (script))
@@ -613,9 +614,11 @@ fontset_find_font (fontset, c, face, id, fallback)
613 ASET (font_spec, FONT_REGISTRY_INDEX, Qiso10646_1); 614 ASET (font_spec, FONT_REGISTRY_INDEX, Qiso10646_1);
614 ASET (font_spec, FONT_EXTRA_INDEX, 615 ASET (font_spec, FONT_EXTRA_INDEX,
615 Fcons (Fcons (QCscript, script), Qnil)); 616 Fcons (Fcons (QCscript, script), Qnil));
616 tmp = Fmake_vector (make_number (5), Qnil); 617 font_def = Fmake_vector (make_number (3), Qnil);
617 ASET (tmp, 3, font_spec); 618 ASET (font_def, 0, font_spec);
618 ASET (vec, 3 + i, tmp); 619 elt = Fmake_vector (make_number (5), Qnil);
620 ASET (elt, 2, font_def);
621 ASET (vec, 3 + i, elt);
619 } 622 }
620#endif /* USE_FONT_BACKEND */ 623#endif /* USE_FONT_BACKEND */
621 624
@@ -659,8 +662,6 @@ fontset_find_font (fontset, c, face, id, fallback)
659 /* Find the first available font in the vector of RFONT-DEF. */ 662 /* Find the first available font in the vector of RFONT-DEF. */
660 for (; i < ASIZE (vec); i++) 663 for (; i < ASIZE (vec); i++)
661 { 664 {
662 Lisp_Object font_def;
663
664 elt = AREF (vec, i); 665 elt = AREF (vec, i);
665 if (NILP (elt)) 666 if (NILP (elt))
666 continue; 667 continue;