aboutsummaryrefslogtreecommitdiffstats
path: root/src/term.c
diff options
context:
space:
mode:
authorEli Zaretskii1999-12-15 13:14:38 +0000
committerEli Zaretskii1999-12-15 13:14:38 +0000
commitf9d2fdc464f130fbde700cecc00c031ef7e8e4f2 (patch)
tree2102159b730a603bb26d4e7d5162211d958058d7 /src/term.c
parente19539f184768f9411860daf9ef9d983e48e2650 (diff)
downloademacs-f9d2fdc464f130fbde700cecc00c031ef7e8e4f2.tar.gz
emacs-f9d2fdc464f130fbde700cecc00c031ef7e8e4f2.zip
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/term.c')
-rw-r--r--src/term.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/term.c b/src/term.c
index 7900643dfdc..04f7a64866d 100644
--- a/src/term.c
+++ b/src/term.c
@@ -1959,7 +1959,9 @@ turn_on_face (f, face_id)
1959 && TN_magic_cookie_glitch_ul <= 0) 1959 && TN_magic_cookie_glitch_ul <= 0)
1960 OUTPUT1_IF (TS_enter_underline_mode); 1960 OUTPUT1_IF (TS_enter_underline_mode);
1961 1961
1962 if (face->tty_reverse_p) 1962 if (face->tty_reverse_p
1963 || face->foreground == FACE_TTY_DEFAULT_BG_COLOR
1964 || face->background == FACE_TTY_DEFAULT_FG_COLOR)
1963 OUTPUT1_IF (TS_enter_reverse_mode); 1965 OUTPUT1_IF (TS_enter_reverse_mode);
1964 1966
1965 if (TN_max_colors > 0) 1967 if (TN_max_colors > 0)
@@ -1967,6 +1969,8 @@ turn_on_face (f, face_id)
1967 char *p; 1969 char *p;
1968 1970
1969 if (face->foreground != FACE_TTY_DEFAULT_COLOR 1971 if (face->foreground != FACE_TTY_DEFAULT_COLOR
1972 && face->foreground != FACE_TTY_DEFAULT_FG_COLOR
1973 && face->foreground != FACE_TTY_DEFAULT_BG_COLOR
1970 && TS_set_foreground) 1974 && TS_set_foreground)
1971 { 1975 {
1972 p = tparam (TS_set_foreground, NULL, 0, (int) face->foreground); 1976 p = tparam (TS_set_foreground, NULL, 0, (int) face->foreground);
@@ -1975,6 +1979,8 @@ turn_on_face (f, face_id)
1975 } 1979 }
1976 1980
1977 if (face->background != FACE_TTY_DEFAULT_COLOR 1981 if (face->background != FACE_TTY_DEFAULT_COLOR
1982 && face->background != FACE_TTY_DEFAULT_BG_COLOR
1983 && face->background != FACE_TTY_DEFAULT_FG_COLOR
1978 && TS_set_background) 1984 && TS_set_background)
1979 { 1985 {
1980 p = tparam (TS_set_background, NULL, 0, (int) face->background); 1986 p = tparam (TS_set_background, NULL, 0, (int) face->background);
@@ -2027,8 +2033,10 @@ turn_off_face (f, face_id)
2027 2033
2028 /* Switch back to default colors. */ 2034 /* Switch back to default colors. */
2029 if (TN_max_colors > 0 2035 if (TN_max_colors > 0
2030 && (face->foreground != FACE_TTY_DEFAULT_COLOR 2036 && ((face->foreground != FACE_TTY_DEFAULT_COLOR
2031 || face->background != FACE_TTY_DEFAULT_COLOR)) 2037 && face->foreground != FACE_TTY_DEFAULT_FG_COLOR)
2038 || (face->background != FACE_TTY_DEFAULT_COLOR
2039 && face->background != FACE_TTY_DEFAULT_BG_COLOR)))
2032 OUTPUT1_IF (TS_orig_pair); 2040 OUTPUT1_IF (TS_orig_pair);
2033} 2041}
2034 2042