From: Karl Heuer Date: Sat, 19 Mar 1994 02:54:00 +0000 (+0000) Subject: (MAKE_GLYPH, GLYPH_CHAR, GLYPH_FACE): Handle termcap frames as well as X. X-Git-Tag: emacs-19.34~9436 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=49b0dd75955ed595dcd2b0f16756fe1251e0639e;p=emacs.git (MAKE_GLYPH, GLYPH_CHAR, GLYPH_FACE): Handle termcap frames as well as X. (FAST_MAKE_GLYPH, FAST_GLYPH_CHAR, FAST_GLYPH_FACE): New macros. --- diff --git a/src/lisp.h b/src/lisp.h index 11337645e54..fbf6ab6e025 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -668,14 +668,28 @@ typedef unsigned char UCHAR; pretty quickly. */ #define GLYPH unsigned int +#ifdef HAVE_X_WINDOWS +/* The FAST macros assume that we already know we're in an X window. */ + /* Given a character code and a face ID, return the appropriate glyph. */ -#define MAKE_GLYPH(char, face) ((char) | ((face) << 8)) +#define FAST_MAKE_GLYPH(char, face) ((char) | ((face) << 8)) /* Return a glyph's character code. */ -#define GLYPH_CHAR(glyph) ((glyph) & 0xff) +#define FAST_GLYPH_CHAR(glyph) ((glyph) & 0xff) /* Return a glyph's face ID. */ -#define GLYPH_FACE(glyph) (((glyph) >> 8) & ((1 << 24) - 1)) +#define FAST_GLYPH_FACE(glyph) (((glyph) >> 8) & ((1 << 24) - 1)) + +/* Slower versions that test the frame type first. */ +#define MAKE_GLYPH(f, char, face) (FRAME_TERMCAP_P (f) ? (char) \ + : FAST_MAKE_GLYPH (char, face)) +#define GLYPH_CHAR(f, g) (FRAME_TERMCAP_P (f) ? (g) : FAST_GLYPH_CHAR (g)) +#define GLYPH_FACE(f, g) (FRAME_TERMCAP_P (f) ? (0) : FAST_GLYPH_FACE (g)) +#else +#define MAKE_GLYPH(f, char, face) (char) +#define GLYPH_CHAR(f, g) (g) +#define GLYPH_FACE(f, g) (g) +#endif /* The ID of the mode line highlighting face. */ #define GLYPH_MODE_LINE_FACE 1