diff src/lisp.h @ 2728:93c9529b2b69

* config.h.in: Remove mention of GLYPH datatype; that shouldn't be a user option. * lisp.h (GLYPH, MAKE_GLYPH, GLYPH_CHAR, GLYPH_FACE): New macros.
author Jim Blandy <jimb@redhat.com>
date Mon, 10 May 1993 00:17:55 +0000
parents 5b92bdfb7fbb
children cfe7659bbc05
line wrap: on
line diff
--- a/src/lisp.h	Mon May 10 00:17:31 1993 +0000
+++ b/src/lisp.h	Mon May 10 00:17:55 1993 +0000
@@ -579,6 +579,28 @@
 #define CHAR_SHIFT (0x200000)
 #define CHAR_CTL   (0x400000)
 #define CHAR_META  (0x800000)
+
+
+/* The glyph datatype, used to represent characters on the display.  */
+
+/* The low eight bits are the character code, and the bits above them
+   are the numeric face ID.  If FID is the face ID of a glyph on a
+   frame F, then F->display.x->faces[FID] contains the description of
+   that face.  This is an int instead of a short, so we can support a
+   good bunch of face ID's; given that we have no mechanism for
+   tossing unused frame face ID's yet, we'll probably run out of 255
+   pretty quickly.  */
+#define GLYPH unsigned int
+
+/* Given a character code and a face ID, return the appropriate glyph.  */
+#define MAKE_GLYPH(char, face) ((char) | ((face) << 8))
+
+/* Return a glyph's character code.  */
+#define GLYPH_CHAR(glyph) ((glyph) & 0xff)
+
+/* Return a glyph's face ID.  */
+#define GLYPH_FACE(glyph) (((glyph) >> 8) & 0xff)
+
 
 /* Data type checking */