diff src/term.c @ 26902:264b83a3a688

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.
author Eli Zaretskii <eliz@gnu.org>
date Wed, 15 Dec 1999 13:14:38 +0000
parents aaf45e665b14
children 5d0057e6170e
line wrap: on
line diff
--- a/src/term.c	Wed Dec 15 12:49:36 1999 +0000
+++ b/src/term.c	Wed Dec 15 13:14:38 1999 +0000
@@ -1959,7 +1959,9 @@
       && TN_magic_cookie_glitch_ul <= 0)
     OUTPUT1_IF (TS_enter_underline_mode);
 
-  if (face->tty_reverse_p)
+  if (face->tty_reverse_p
+      || face->foreground == FACE_TTY_DEFAULT_BG_COLOR
+      || face->background == FACE_TTY_DEFAULT_FG_COLOR)
     OUTPUT1_IF (TS_enter_reverse_mode);
 
   if (TN_max_colors > 0)
@@ -1967,6 +1969,8 @@
       char *p;
       
       if (face->foreground != FACE_TTY_DEFAULT_COLOR
+	  && face->foreground != FACE_TTY_DEFAULT_FG_COLOR
+	  && face->foreground != FACE_TTY_DEFAULT_BG_COLOR
 	  && TS_set_foreground)
 	{
 	  p = tparam (TS_set_foreground, NULL, 0, (int) face->foreground);
@@ -1975,6 +1979,8 @@
 	}
 
       if (face->background != FACE_TTY_DEFAULT_COLOR
+	  && face->background != FACE_TTY_DEFAULT_BG_COLOR
+	  && face->background != FACE_TTY_DEFAULT_FG_COLOR
 	  && TS_set_background)
 	{
 	  p = tparam (TS_set_background, NULL, 0, (int) face->background);
@@ -2027,8 +2033,10 @@
 
   /* Switch back to default colors.  */
   if (TN_max_colors > 0
-      && (face->foreground != FACE_TTY_DEFAULT_COLOR
-	  || face->background != FACE_TTY_DEFAULT_COLOR))
+      && ((face->foreground != FACE_TTY_DEFAULT_COLOR
+	   && face->foreground != FACE_TTY_DEFAULT_FG_COLOR)
+	  || (face->background != FACE_TTY_DEFAULT_COLOR
+	      && face->background != FACE_TTY_DEFAULT_BG_COLOR)))
     OUTPUT1_IF (TS_orig_pair);
 }