diff options
| author | Eli Zaretskii | 1999-12-15 13:14:38 +0000 |
|---|---|---|
| committer | Eli Zaretskii | 1999-12-15 13:14:38 +0000 |
| commit | f9d2fdc464f130fbde700cecc00c031ef7e8e4f2 (patch) | |
| tree | 2102159b730a603bb26d4e7d5162211d958058d7 /src/dosfns.c | |
| parent | e19539f184768f9411860daf9ef9d983e48e2650 (diff) | |
| download | emacs-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/dosfns.c')
| -rw-r--r-- | src/dosfns.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/dosfns.c b/src/dosfns.c index 857d16bd9b2..feb9080b7c7 100644 --- a/src/dosfns.c +++ b/src/dosfns.c | |||
| @@ -409,6 +409,10 @@ static char *vga_colors[16] = { | |||
| 409 | "lightred", "lightmagenta", "yellow", "white" | 409 | "lightred", "lightmagenta", "yellow", "white" |
| 410 | }; | 410 | }; |
| 411 | 411 | ||
| 412 | static char *unspecified_colors[] = { | ||
| 413 | "unspecified-fg", "unspecified-bg", "unspecified" | ||
| 414 | }; | ||
| 415 | |||
| 412 | /* Given a color name, return its index, or -1 if not found. Note | 416 | /* Given a color name, return its index, or -1 if not found. Note |
| 413 | that this only performs case-insensitive comparison against the | 417 | that this only performs case-insensitive comparison against the |
| 414 | standard names. For anything more sophisticated, like matching | 418 | standard names. For anything more sophisticated, like matching |
| @@ -424,17 +428,25 @@ msdos_stdcolor_idx (const char *name) | |||
| 424 | if (strcasecmp (name, vga_colors[i]) == 0) | 428 | if (strcasecmp (name, vga_colors[i]) == 0) |
| 425 | return i; | 429 | return i; |
| 426 | 430 | ||
| 427 | return FACE_TTY_DEFAULT_COLOR; | 431 | return |
| 432 | strcmp (name, unspecified_colors[0]) == 0 ? FACE_TTY_DEFAULT_FG_COLOR | ||
| 433 | : strcmp (name, unspecified_colors[1]) == 0 ? FACE_TTY_DEFAULT_BG_COLOR | ||
| 434 | : FACE_TTY_DEFAULT_COLOR; | ||
| 428 | } | 435 | } |
| 429 | 436 | ||
| 430 | /* Given a color index, return its standard name. */ | 437 | /* Given a color index, return its standard name. */ |
| 431 | Lisp_Object | 438 | Lisp_Object |
| 432 | msdos_stdcolor_name (int idx) | 439 | msdos_stdcolor_name (int idx) |
| 433 | { | 440 | { |
| 434 | extern Lisp_Object Qunspecified; | 441 | extern Lisp_Object Qunspecified, Qunspecified_fg, Qunspecified_bg; |
| 435 | 442 | ||
| 436 | if (idx < 0 || idx >= sizeof (vga_colors) / sizeof (vga_colors[0])) | 443 | if (idx < 0 || idx >= sizeof (vga_colors) / sizeof (vga_colors[0])) |
| 437 | return Qunspecified; /* meaning the default */ | 444 | { |
| 445 | return | ||
| 446 | idx == FACE_TTY_DEFAULT_FG_COLOR ? Qunspecified_fg | ||
| 447 | : idx == FACE_TTY_DEFAULT_BG_COLOR ? Qunspecified_bg | ||
| 448 | : Qunspecified; /* meaning the default */ | ||
| 449 | } | ||
| 438 | return build_string (vga_colors[idx]); | 450 | return build_string (vga_colors[idx]); |
| 439 | } | 451 | } |
| 440 | 452 | ||