aboutsummaryrefslogtreecommitdiffstats
path: root/src/dosfns.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/dosfns.c')
-rw-r--r--src/dosfns.c18
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
412static 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. */
431Lisp_Object 438Lisp_Object
432msdos_stdcolor_name (int idx) 439msdos_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