diff options
author | John-Mark Bell <jmb@netsurf-browser.org> | 2022-05-27 14:13:41 +0100 |
---|---|---|
committer | John-Mark Bell <jmb@netsurf-browser.org> | 2022-05-27 14:13:41 +0100 |
commit | 769b9ee5c1a1a70a0a75a78269ccabb2b7591832 (patch) | |
tree | fd37e95a8050812ca506dee6324854eb3f5da0bc /src/rufl_init.c | |
parent | 7f5504490fb8fb7ba3916bef7882bd8860a5c0a5 (diff) | |
download | librufl-769b9ee5c1a1a70a0a75a78269ccabb2b7591832.tar.gz librufl-769b9ee5c1a1a70a0a75a78269ccabb2b7591832.tar.bz2 |
Fix error conditions in broken FEC case
Diffstat (limited to 'src/rufl_init.c')
-rw-r--r-- | src/rufl_init.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/rufl_init.c b/src/rufl_init.c index de3463a..6c06a8f 100644 --- a/src/rufl_init.c +++ b/src/rufl_init.c @@ -571,10 +571,14 @@ static rufl_code rufl_init_enumerate_characters(const char *font_name, rufl_fm_error->errmess); return rufl_FONT_MANAGER_ERROR; } + if (first == (unsigned int) -1) { + /* Font has no defined characters */ + return rufl_OK; + } /* Search the entire space up to the first codepoint it * reported. */ - for (u = 1; u != (unsigned int) -1 && u != first; u++) { + for (u = 1; u != first; u++) { rufl_fm_error = xfont_enumerate_characters(font, u, (int *) &next, (int *) &internal); if (rufl_fm_error) { @@ -583,8 +587,7 @@ static rufl_code rufl_init_enumerate_characters(const char *font_name, font_name, u, rufl_fm_error->errnum, rufl_fm_error->errmess); - result = rufl_FONT_MANAGER_ERROR; - break; + return rufl_FONT_MANAGER_ERROR; } /* Skip unmapped characters */ @@ -594,7 +597,7 @@ static rufl_code rufl_init_enumerate_characters(const char *font_name, /* Character is mapped, emit it */ result = callback(pw, internal, u); if (result != rufl_OK) - break; + return result; } /* Now fall through to the normal path */ |