summaryrefslogtreecommitdiff
path: root/src/msdos.c
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>1999-12-15 13:14:38 +0000
committerEli Zaretskii <eliz@gnu.org>1999-12-15 13:14:38 +0000
commitf9d2fdc464f130fbde700cecc00c031ef7e8e4f2 (patch)
tree2102159b730a603bb26d4e7d5162211d958058d7 /src/msdos.c
parente19539f184768f9411860daf9ef9d983e48e2650 (diff)
downloademacs-f9d2fdc464f130fbde700cecc00c031ef7e8e4f2.tar.gz
Changes for separate unspecified foreground and background colors
on character terminals: * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR) (FACE_TTY_DEFAULT_BG_COLOR): New macros. * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables. (syms_of_xfaces): Initialize and staticpro them. (tty_defined_color): If the color name is unspecified-fg or unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value. (tty_color_name): If the color pixel value is either FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg or Qunspecified_bg, respectively. (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg and Qunspecified_bg for foreground and background colors. (realize_default_face): If the foreground and background colors are not specified, default to Qunspecified_fg and Qunspecified_bg. (realize_tty_face): By default, set the face colors to FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR. [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined. Reverse the colors if the default colors were reversed. * dispnew.c (init_display): Initialize the frame pixels of the initial frame to FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR. * term.c (turn_on_face): If the default fore- and background colors are reversed, enter inverse video mode. Don't send color escape sequences for unspecified foreground and background colors. (turn_off_face): Handle unspecified-fg and unspecified-bg colors. * dosfns.c (unspecified_colors): New variable. (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg color names, return FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR, respectively. (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and Qunspecified_bg, respectively. * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR as pixel values. * faces.el (face-read-integer, read-face-attribute) (color-defined-p, color-values): Allow color values unspecified-fg and unspecified-bg, handle them as unspecified.
Diffstat (limited to 'src/msdos.c')
-rw-r--r--src/msdos.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/msdos.c b/src/msdos.c
index 450d1273c02..1856b6ed656 100644
--- a/src/msdos.c
+++ b/src/msdos.c
@@ -685,12 +685,16 @@ IT_set_face (int face)
all 16 colors to be available for the background, since Emacs
switches on this mode (and loses the blinking attribute) at
startup. */
- if (fg == (unsigned long)-1)
+ if (fg == FACE_TTY_DEFAULT_COLOR || fg == FACE_TTY_DEFAULT_FG_COLOR)
fg = highlight || fp->tty_reverse_p ? FRAME_BACKGROUND_PIXEL (sf)
: FRAME_FOREGROUND_PIXEL (sf);
- if (bg == (unsigned long)-1)
+ else if (fg == FACE_TTY_DEFAULT_BG_COLOR)
+ fg = highlight ? FRAME_FOREGROUND_PIXEL (sf) : FRAME_BACKGROUND_PIXEL (sf);
+ if (bg == FACE_TTY_DEFAULT_COLOR || fg == FACE_TTY_DEFAULT_BG_COLOR)
bg = highlight || fp->tty_reverse_p ? FRAME_FOREGROUND_PIXEL (sf)
: FRAME_BACKGROUND_PIXEL (sf);
+ else if (bg == FACE_TTY_DEFAULT_FG_COLOR)
+ fg = highlight ? FRAME_BACKGROUND_PIXEL (sf) : FRAME_FOREGROUND_PIXEL (sf);
if (termscript)
fprintf (termscript, "<FACE %d%s: %d/%d>",
face, highlight ? "H" : "", fp->foreground, fp->background);