summaryrefslogtreecommitdiff
path: root/src/rufl_init.c
diff options
context:
space:
mode:
authorJohn-Mark Bell <jmb@netsurf-browser.org>2022-05-27 14:13:41 +0100
committerJohn-Mark Bell <jmb@netsurf-browser.org>2022-05-27 14:13:41 +0100
commit769b9ee5c1a1a70a0a75a78269ccabb2b7591832 (patch)
treefd37e95a8050812ca506dee6324854eb3f5da0bc /src/rufl_init.c
parent7f5504490fb8fb7ba3916bef7882bd8860a5c0a5 (diff)
downloadlibrufl-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.c11
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 */