summaryrefslogtreecommitdiff
path: root/rufl_internal.h
diff options
context:
space:
mode:
authorJames Bursa <james@netsurf-browser.org>2005-02-08 23:25:59 +0000
committerJames Bursa <james@netsurf-browser.org>2005-02-08 23:25:59 +0000
commit3b86ee8e511f8811189a381e4d1f8864e49f1e5f (patch)
tree61d32a5471e4f1613c06bd70ca654c6013d26502 /rufl_internal.h
parentc4580a33f78825e385626610fbbff9a675b248a4 (diff)
downloadlibrufl-3b86ee8e511f8811189a381e4d1f8864e49f1e5f.tar.gz
librufl-3b86ee8e511f8811189a381e4d1f8864e49f1e5f.tar.bz2
[project @ 2005-02-08 23:25:59 by bursa]
Support for non-Unicode Font Manager. svn path=/import/rufl/; revision=2444
Diffstat (limited to 'rufl_internal.h')
-rw-r--r--rufl_internal.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/rufl_internal.h b/rufl_internal.h
index 0f9a75f..5eb4989 100644
--- a/rufl_internal.h
+++ b/rufl_internal.h
@@ -36,12 +36,33 @@ struct rufl_character_set {
};
+/** Part of struct rufl_unicode_map. */
+struct rufl_unicode_map_entry {
+ /** Unicode value. */
+ unsigned short u;
+ /** Corresponding character. */
+ unsigned char c;
+};
+
+
+/** Old font manager: mapping from Unicode to character code. This is simply
+ * an array sorted by Unicode value, suitable for bsearch(). */
+struct rufl_unicode_map {
+ /** Number of valid entries in u and c. */
+ unsigned int entries;
+ /** Map from Unicode to character code. */
+ struct rufl_unicode_map_entry map[224];
+};
+
+
/** An entry in rufl_font_list. */
struct rufl_font_list_entry {
/** Font identifier (name). */
char *identifier;
/** Character set of font. */
struct rufl_character_set *charset;
+ /** Mapping from Unicode to character code. */
+ struct rufl_unicode_map *umap;
};
/** List of all available fonts. */
extern struct rufl_font_list_entry *rufl_font_list;
@@ -101,6 +122,9 @@ extern struct rufl_cache_entry rufl_cache[rufl_CACHE_SIZE];
/** Counter for measuring age of cache entries. */
extern int rufl_cache_time;
+/** Font manager does not support Unicode. */
+extern bool rufl_old_font_manager;
+
bool rufl_character_set_test(struct rufl_character_set *charset,
unsigned int c);
@@ -132,3 +156,13 @@ unsigned int rufl_substitution_lookup(unsigned int c);
}
#define rufl_CACHE "<Wimp$ScrapDir>.RUfl_cache"
+#define rufl_CACHE_VERSION 1
+
+
+struct rufl_glyph_map_entry {
+ const char *glyph_name;
+ unsigned short u;
+};
+
+extern const struct rufl_glyph_map_entry rufl_glyph_map[];
+extern const size_t rufl_glyph_map_size;