diff options
| author | Eli Zaretskii | 2023-05-09 08:20:57 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2023-05-09 08:20:57 +0300 |
| commit | d94ea9efca663510ce2cf8c6df327404d92afa0a (patch) | |
| tree | 726d16c92531f524d0093c41aa8e7375fbc22c10 | |
| parent | 387ddc0ccc1b21f612b9106bafec63170ede30e6 (diff) | |
| download | emacs-d94ea9efca663510ce2cf8c6df327404d92afa0a.tar.gz emacs-d94ea9efca663510ce2cf8c6df327404d92afa0a.zip | |
Avoid crashes in --without-all build trying to scale non-ASCII char
* src/fontset.c (face_for_char): Display a non-ASCII character as
glyphless if the ASCII face has no fontset. (Bug#63283)
| -rw-r--r-- | src/fontset.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/fontset.c b/src/fontset.c index f196dee8259..c0e00cfa346 100644 --- a/src/fontset.c +++ b/src/fontset.c | |||
| @@ -967,6 +967,15 @@ face_for_char (struct frame *f, struct face *face, int c, | |||
| 967 | #endif | 967 | #endif |
| 968 | } | 968 | } |
| 969 | 969 | ||
| 970 | /* If the parent face has no fontset we could work with, and has no | ||
| 971 | font, just return that same face, so that the caller will | ||
| 972 | consider the character to have no font capable of displaying it, | ||
| 973 | and display it as "glyphless". That is certainly better than | ||
| 974 | violating the assertion below or crashing when assertions are not | ||
| 975 | compiled in. */ | ||
| 976 | if (face->fontset < 0 && !face->font) | ||
| 977 | return face->id; | ||
| 978 | |||
| 970 | eassert (fontset_id_valid_p (face->fontset)); | 979 | eassert (fontset_id_valid_p (face->fontset)); |
| 971 | fontset = FONTSET_FROM_ID (face->fontset); | 980 | fontset = FONTSET_FROM_ID (face->fontset); |
| 972 | eassert (!BASE_FONTSET_P (fontset)); | 981 | eassert (!BASE_FONTSET_P (fontset)); |