aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/fontset.c33
1 files changed, 20 insertions, 13 deletions
diff --git a/src/fontset.c b/src/fontset.c
index 85e9254e765..82d1445f1a4 100644
--- a/src/fontset.c
+++ b/src/fontset.c
@@ -635,23 +635,30 @@ fontset_find_font (fontset, c, face, id, fallback)
635 635
636 if (id < 0) 636 if (id < 0)
637 i = 3; 637 i = 3;
638 else if (id == XFASTINT (AREF (vec, 1)))
639 i = 2;
640 else 638 else
641 { 639 {
642 ASET (vec, 1, make_number (id)); 640 struct charset *charset = CHARSET_FROM_ID (id);
643 for (i = 3; i < ASIZE (vec); i++) 641
644 if (id == XFASTINT (AREF (AREF (AREF (vec, i), 2), 1))) 642 if (charset->supplementary_p)
645 break; 643 i = 3;
646 if (i < ASIZE (vec)) 644 else if (id == XFASTINT (AREF (vec, 1)))
647 { 645 i = 2;
648 ASET (vec, 2, AREF (vec, i));
649 i = 2;
650 }
651 else 646 else
652 { 647 {
653 ASET (vec, 2, Qnil); 648 ASET (vec, 1, make_number (id));
654 i = 3; 649 for (i = 3; i < ASIZE (vec); i++)
650 if (id == XFASTINT (AREF (AREF (AREF (vec, i), 2), 1)))
651 break;
652 if (i < ASIZE (vec))
653 {
654 ASET (vec, 2, AREF (vec, i));
655 i = 2;
656 }
657 else
658 {
659 ASET (vec, 2, Qnil);
660 i = 3;
661 }
655 } 662 }
656 } 663 }
657 664