changeset 42951:de5c4caf0969

(tty-standard-colors): Reverse the order of colors. (tty-register-default-colors): New function; code moved from startup.el's command-line.
author Eli Zaretskii <eliz@gnu.org>
date Fri, 25 Jan 2002 13:16:23 +0000
parents 65a061ec7803
children c73820c5ecbf
files lisp/term/tty-colors.el
diffstat 1 files changed, 32 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/term/tty-colors.el	Fri Jan 25 13:14:16 2002 +0000
+++ b/lisp/term/tty-colors.el	Fri Jan 25 13:16:23 2002 +0000
@@ -741,14 +741,14 @@
   "An alist of X color names and associated 8-bit RGB values.")
 
 (defvar tty-standard-colors
-  '(("white"	7 65535 65535 65535)
-    ("cyan"	6     0 65535 65535)
-    ("magenta"	5 65535     0 65535)
+  '(("black"	0     0     0     0)
+    ("red"	1 65535     0     0)
+    ("green"	2     0 65535     0)
+    ("yellow"	3 65535 65535     0)
     ("blue"	4     0     0 65535)
-    ("yellow"	3 65535 65535     0)
-    ("green"	2     0 65535     0)
-    ("red"	1 65535     0     0)
-    ("black"	0     0     0     0))
+    ("magenta"	5 65535     0 65535)
+    ("cyan"	6     0 65535 65535)
+    ("white"	7 65535 65535 65535))
   "An alist of 8 standard tty colors, their indices and RGB values.")
 
 ;; This is used by term.c
@@ -784,17 +784,40 @@
   tty-defined-color-alist)
 
 (defun tty-modify-color-alist (elt &optional frame)
-  "Put the association ELT int the alist of terminal colors for FRAME.
+  "Put the association ELT into the alist of terminal colors for FRAME.
 ELT should be of the form  \(NAME INDEX R G B\) (see `tty-color-alist'
 for details).
+If the association for NAME already exists in the color alist, it is
+modified to specify \(INDEX R G B\) as its cdr.  Otherwise, ELT is
+appended to the end of the color alist.
 If FRAME is unspecified or nil, it defaults to the selected frame.
 Value is the modified color alist for FRAME."
   (let* ((entry (assoc (car elt) (tty-color-alist frame))))
     (if entry
 	(setcdr entry (cdr elt))
-      (setq tty-defined-color-alist (cons elt tty-defined-color-alist)))
+      ;; Keep the colors in the order they are registered.
+      (setq entry
+	    (list (append (list (car elt)
+				(cadr elt))
+			  (copy-sequence (cddr elt)))))
+      (setq tty-defined-color-alist (nconc tty-defined-color-alist entry)))
     tty-defined-color-alist))
 
+(defun tty-register-default-colors ()
+  "Register the default set of colors for a character terminal."
+  (let* ((colors (cond ((eq window-system 'pc)
+			msdos-color-values)
+		       ((eq system-type 'windows-nt)
+			w32-tty-standard-colors)
+		       (t tty-standard-colors)))
+	 (color (car colors)))
+    (while colors
+      (tty-color-define (car color) (cadr color) (cddr color))
+      (setq colors (cdr colors) color (car colors)))
+    ;; Modifying color mappings means realized faces don't
+    ;; use the right colors, so clear them.
+    (clear-face-cache)))
+
 (defun tty-color-canonicalize (color)
   "Return COLOR in canonical form.
 A canonicalized color name is all-lower case, with any blanks removed."