summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorwl <wl>2006-02-26 22:21:37 +0000
committerwl <wl>2006-02-26 22:21:37 +0000
commit4b6e325fd4415df8050b0415af0d7d14bd6e43c9 (patch)
tree92cb00de203252e7ee0ff245e6f78bb5c566bc33 /src/include
parent91a4472253fff23acf3a902d64d43d27d7ffcb5d (diff)
downloadgroff-4b6e325fd4415df8050b0415af0d7d14bd6e43c9.tar.gz
* doc/Makefile.sub (HTMLEXAMPLEFILESALL): New variable. (CLEANADD): Use it.
(install_html, uninstall_sub): Updated. Introduce Unicode fonts. * font/devhtml/DESC.proto: Mark as unicode. font/devhtml/R.proto: Remove all * charset entries that are already in glyphuni.cpp. font/devutf8/DESC.proto: Mark as unicode. * font/devutf8/R.proto: Remove all charset entries. src/include/font.h * (font): New static field `is_unicode'. Change order of fields. src/libs/libgroff/font.cpp: Include unicode.h. * (font::font): Update for changed order of fields. (font::contains, font::get_width, font::get_height, font::get_depth, font::get_italic_correction, font::get_left_italic_correction, font::get_subscript_correction, font::get_character_type, font::get_code, font::get_special_device_encoding): Handle both the explicitly enumerated glyphs and use general code for Unicode fonts. (font::load): Make the charset section optional when the font is declared unicode. (font::load_desc): Recognize the `unicode' attribute. * src/libs/libgroff/fontfile.cpp (font::is_unicode): New variable.
Diffstat (limited to 'src/include')
-rw-r--r--src/include/font.h18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/include/font.h b/src/include/font.h
index 287d2006..0f561d1a 100644
--- a/src/include/font.h
+++ b/src/include/font.h
@@ -248,6 +248,8 @@ public:
// `pass_filenames' attribute.
static int use_charnames_in_special; // Nonzero if the DESC file has the
// `use_charnames_in_special' attribute.
+ static int is_unicode; // Nonzero if the DESC file has the `unicode'
+ // attribute.
static const char *image_generator; // The `image_generator' attribute
// given in the DESC file.
static const char **font_name_table; // The `fonts' attribute given in
@@ -269,22 +271,24 @@ private:
// Used by get_kern().
int space_width; // The normal width of a space. Used by
// get_space_width().
+ int special; // 1 if this font is special, 0 otherwise. Used by
+ // is_special().
+ char *name; // The name of this font. Used by get_name().
+ char *internalname; // The `internalname' attribute of this font, or
+ // NULL. Used by get_internal_name().
+ double slant; // The natural slant angle (in degrees) of this font.
int *ch_index; // Conversion table from font-independent character
// indices to indices for this particular font.
int nindices;
font_char_metric *ch; // Metrics information for every character in this
- // font. The indices of this array are
+ // font (if !is_unicode) or for just some characters
+ // (if is_unicode). The indices of this array are
// font-specific, found as values in ch_index[].
int ch_used;
int ch_size;
- int special; // 1 if this font is special, 0 otherwise. Used by
- // is_special().
- char *name; // The name of this font. Used by get_name().
- char *internalname; // The `internalname' attribute of this font, or
- // NULL. Used by get_internal_name().
- double slant; // The natural slant angle (in degrees) of this font.
font_widths_cache *widths_cache; // A cache of scaled character
// widths. Used by the get_width() function.
+
static FONT_COMMAND_HANDLER unknown_desc_command_handler; // A
// function defining the semantics of arbitrary
// commands in the DESC file.