From 4b6e325fd4415df8050b0415af0d7d14bd6e43c9 Mon Sep 17 00:00:00 2001 From: wl Date: Sun, 26 Feb 2006 22:21:37 +0000 Subject: * 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. --- src/include/font.h | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'src/include') 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. -- cgit v1.2.1