render: fix order we're checking custom codepoints

Fixes a crash when trying to print a "Legacy Computing"
symbol (U+1FB00-U+1FB9B).

Closes #1901
This commit is contained in:
Daniel Eklöf 2025-01-03 07:33:14 +01:00
parent 9cde179034
commit f5c10a2452
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
3 changed files with 18 additions and 11 deletions

View file

@ -72,6 +72,13 @@
### Deprecated
### Removed
### Fixed
* Regression: trying to print a Unicode _"Legacy Computing symbol"_,
in the range U+1FB00 - U+1FB9B would crash foot ([#][]).
[1901]: https://codeberg.org/dnkl/foot/issues/1901
### Security
### Contributors

View file

@ -817,14 +817,14 @@ render_cell(struct terminal *term, pixman_image_t *pix, pixman_region32_t *damag
size_t count;
size_t idx;
if (base >= GLYPH_OCTANTS_FIRST) {
arr = &term->custom_glyphs.octants;
count = GLYPH_OCTANTS_COUNT;
idx = base - GLYPH_OCTANTS_FIRST;
} else if (base >= GLYPH_LEGACY_FIRST) {
if (base >= GLYPH_LEGACY_FIRST) {
arr = &term->custom_glyphs.legacy;
count = GLYPH_LEGACY_COUNT;
idx = base - GLYPH_LEGACY_FIRST;
} else if (base >= GLYPH_OCTANTS_FIRST) {
arr = &term->custom_glyphs.octants;
count = GLYPH_OCTANTS_COUNT;
idx = base - GLYPH_OCTANTS_FIRST;
} else if (base >= GLYPH_BRAILLE_FIRST) {
arr = &term->custom_glyphs.braille;
count = GLYPH_BRAILLE_COUNT;

View file

@ -482,8 +482,8 @@ struct terminal {
struct {
struct fcft_glyph **box_drawing;
struct fcft_glyph **braille;
struct fcft_glyph **legacy;
struct fcft_glyph **octants;
struct fcft_glyph **legacy;
#define GLYPH_BOX_DRAWING_FIRST 0x2500
#define GLYPH_BOX_DRAWING_LAST 0x259F
@ -495,15 +495,15 @@ struct terminal {
#define GLYPH_BRAILLE_COUNT \
(GLYPH_BRAILLE_LAST - GLYPH_BRAILLE_FIRST + 1)
#define GLYPH_LEGACY_FIRST 0x1FB00
#define GLYPH_LEGACY_LAST 0x1FB9B
#define GLYPH_LEGACY_COUNT \
(GLYPH_LEGACY_LAST - GLYPH_LEGACY_FIRST + 1)
#define GLYPH_OCTANTS_FIRST 0x1CD00
#define GLYPH_OCTANTS_LAST 0x1CDE5
#define GLYPH_OCTANTS_COUNT \
(GLYPH_OCTANTS_LAST - GLYPH_OCTANTS_FIRST + 1)
#define GLYPH_LEGACY_FIRST 0x1FB00
#define GLYPH_LEGACY_LAST 0x1FB9B
#define GLYPH_LEGACY_COUNT \
(GLYPH_LEGACY_LAST - GLYPH_LEGACY_FIRST + 1)
} custom_glyphs;
bool is_sending_paste_data;