summaryrefslogtreecommitdiff
path: root/rufl_init.c
diff options
context:
space:
mode:
authorJames Bursa <james@netsurf-browser.org>2005-04-05 19:16:48 +0000
committerJames Bursa <james@netsurf-browser.org>2005-04-05 19:16:48 +0000
commita9768c64b5df87af089e14401924b313ea2b0e72 (patch)
tree2d6dbcb5062678768301d1b33447496a9b29bff3 /rufl_init.c
parent0d5d898413c1daa3d4b60a7865581d6582f1caef (diff)
downloadlibrufl-a9768c64b5df87af089e14401924b313ea2b0e72.tar.gz
librufl-a9768c64b5df87af089e14401924b313ea2b0e72.tar.bz2
[project @ 2005-04-05 19:16:48 by bursa]
Handle fonts which cause an error better (no longer attempt to save the uninitialized charset tables to the cache). svn path=/import/rufl/; revision=2460
Diffstat (limited to 'rufl_init.c')
-rw-r--r--rufl_init.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/rufl_init.c b/rufl_init.c
index 77f17d1..24687f6 100644
--- a/rufl_init.c
+++ b/rufl_init.c
@@ -144,7 +144,6 @@ rufl_code rufl_init(void)
xhourglass_off();
return code;
}
- assert(rufl_font_list[i].charset);
changes++;
}
@@ -336,9 +335,7 @@ rufl_code rufl_init_scan_font(unsigned int font_index)
if (rufl_fm_error) {
LOG("xfont_find_font(\"%s\"): 0x%x: %s", font_name,
rufl_fm_error->errnum, rufl_fm_error->errmess);
- for (u = 0; u != 256; u++)
- charset->index[u] = BLOCK_EMPTY;
- rufl_font_list[font_index].charset = charset;
+ free(charset);
return rufl_OK;
}
@@ -451,7 +448,7 @@ rufl_code rufl_init_scan_font_old(unsigned int font_index)
LOG("xfont_find_font(\"%s\"): 0x%x: %s", font_name,
rufl_fm_error->errnum, rufl_fm_error->errmess);
free(umap);
- rufl_font_list[font_index].charset = charset;
+ free(charset);
return rufl_OK;
}
@@ -643,6 +640,8 @@ rufl_code rufl_init_substitution_table(void)
for (i = 0; i != rufl_font_list_entries; i++) {
charset = rufl_font_list[i].charset;
+ if (!charset)
+ continue;
for (block = 0; block != 256; block++) {
if (charset->index[block] == BLOCK_EMPTY)
continue;
@@ -708,6 +707,9 @@ rufl_code rufl_save_cache(void)
}
for (i = 0; i != rufl_font_list_entries; i++) {
+ if (!rufl_font_list[i].charset)
+ continue;
+
/* length of font identifier */
len = strlen(rufl_font_list[i].identifier);
if (fwrite(&len, sizeof len, 1, fp) != 1) {