# HG changeset patch # User Eli Zaretskii # Date 933322513 0 # Node ID 73c54061f4bb9964012c93c337ea154eccbbfb48 # Parent 8bf9ad7816a81c9b043595b15ec92669e2802cdb (msdos_stdcolor_name, msdos_stdcolor_idx): New functions. diff -r 8bf9ad7816a8 -r 73c54061f4bb src/dosfns.c --- a/src/dosfns.c Fri Jul 30 08:11:41 1999 +0000 +++ b/src/dosfns.c Fri Jul 30 08:15:13 1999 +0000 @@ -26,6 +26,7 @@ /* The entire file is within this conditional */ #include +#include #include #include "lisp.h" #include "buffer.h" @@ -36,6 +37,7 @@ #include "window.h" #include "dosfns.h" #include "msdos.h" +#include "dispextern.h" #include #include #include @@ -401,6 +403,44 @@ } #ifndef HAVE_X_WINDOWS + +/* Emulation of some X window features from xfns.c and xfaces.c. */ + +/* Standard VGA colors, in the order of their standard numbering + in the default VGA palette. */ +static char *vga_colors[16] = { + "black", "blue", "green", "cyan", "red", "magenta", "brown", + "lightgray", "darkgray", "lightblue", "lightgreen", "lightcyan", + "lightred", "lightmagenta", "yellow", "white" +}; + +/* Given a color name, return its index, or -1 if not found. Note + that this only performs case-insensitive comparison against the + standard names. For anything more sophisticated, like matching + "gray" with "grey" or translating X color names into their MSDOS + equivalents, call the Lisp function Qmsdos_color_translate (defined + on lisp/term/pc-win.el). */ +int +msdos_stdcolor_idx (const char *name) +{ + int i; + + for (i = 0; i < sizeof (vga_colors) / sizeof (vga_colors[0]); i++) + if (strcasecmp (name, vga_colors[i]) == 0) + return i; + + return FACE_TTY_DEFAULT_COLOR; +} + +/* Given a color index, return its standard name. */ +const char * +msdos_stdcolor_name (int idx) +{ + if (idx < 0 || idx >= sizeof (vga_colors) / sizeof (vga_colors[0])) + return ""; /* meaning the default */ + return vga_colors[idx]; +} + /* Support for features that are available when we run in a DOS box on MS-Windows. */ int