]> code.delx.au - gnu-emacs/blobdiff - src/fontset.h
(Fcoordinates_in_window_p): Convert Fcons arguments to Lisp_Integer.
[gnu-emacs] / src / fontset.h
index a00688ac3e9c190361d38af01076df9d9a70af18..2df41aa0b721852c0933e5e7d880ce43985e18b5 100644 (file)
@@ -1,7 +1,6 @@
 /* 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.
 
@@ -71,7 +70,7 @@ struct font_info
      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'
@@ -126,6 +125,11 @@ struct font_info
   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
 
@@ -205,5 +209,25 @@ extern Lisp_Object Vglobal_fontset_alist;
 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 */