/* Header for fontset handler.
- Ver.1.0
- Copyright (C) 1995 Free Software Foundation, Inc.
- Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
+ Copyright (C) 1995, 1997 Electrotechnical Laboratory, JAPAN.
+ Licensed to the Free Software Foundation.
This file is part of GNU Emacs.
whose default value is defined in lisp/fontset.el. Since there's
no charset whose id is 1, we use encoding[1] to store the
encoding information decided by the font itself. */
- char encoding[MAX_CHARSET + 1];
+ unsigned char encoding[MAX_CHARSET + 1];
/* The baseline position of a font is normally `ascent' value of the
font. However, there exists many fonts which don't set `ascent'
struct ccl_program *font_encoder;
};
+/* A value which may appear in the member encoding of struch font_info
+ indicating that a font itself doesn't tell which encoding to be
+ used. */
+#define FONT_ENCODING_NOT_DECIDED 4
+
#define FONT_NOT_OPENED -1
#define FONT_NOT_FOUND -2
extern Lisp_Object Qfontset;
extern Lisp_Object Vuse_default_ascent;
extern Lisp_Object Valternative_fontname_alist;
+extern Lisp_Object Vhighlight_wrong_size_font;
+extern Lisp_Object Vclip_large_size_font;
+
+extern int font_idx_temp;
+
+/* Load a font named FONTNAME for displaying CHARSET on frame F.
+ All fonts for frame F is stored in a table pointed by FONT_TABLE.
+ Return a pointer to the struct font_info of the loaded font.
+ If loading fails, return 0;
+ If FONTNAME is NULL, the name is taken from the information of FONTSET.
+ If FONTSET is given, try to load a font whose size matches that of
+ FONTSET, and, the font index is stored in the table for FONTSET. */
+
+#define FS_LOAD_FONT(f, font_table, charset, fontname, fontset) \
+ (fontset >= 0 && fontset < FRAME_FONTSET_DATA (f)->n_fontsets \
+ && (font_idx_temp = (FRAME_FONTSET_DATA (f) \
+ ->fontset_table[fontset]->font_indexes[charset]), \
+ font_idx_temp >= 0) \
+ ? font_table + font_idx_temp \
+ : fs_load_font (f, font_table, charset, fontname, fontset))
#endif /* _FONTSET_H */