diff src/dosfns.c @ 25113:73c54061f4bb

(msdos_stdcolor_name, msdos_stdcolor_idx): New functions.
author Eli Zaretskii <eliz@gnu.org>
date Fri, 30 Jul 1999 08:15:13 +0000
parents 3229c65a13c5
children f0cb2d2e49f2
line wrap: on
line diff
--- 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 <stdio.h>
+#include <string.h>
 #include <dos.h>
 #include "lisp.h"
 #include "buffer.h"
@@ -36,6 +37,7 @@
 #include "window.h"
 #include "dosfns.h"
 #include "msdos.h"
+#include "dispextern.h"
 #include <dpmi.h>
 #include <go32.h>
 #include <dirent.h>
@@ -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