]> git.eshelyaron.com Git - emacs.git/commitdiff
(tty-standard-colors): Reverse the order of colors.
authorEli Zaretskii <eliz@gnu.org>
Fri, 25 Jan 2002 13:16:23 +0000 (13:16 +0000)
committerEli Zaretskii <eliz@gnu.org>
Fri, 25 Jan 2002 13:16:23 +0000 (13:16 +0000)
(tty-register-default-colors): New function;
code moved from startup.el's command-line.

lisp/term/tty-colors.el

index fc21aee222548706780caeec55c056b052ea2c99..a0dd09db1cb9b76b02f55a8b3f0c695bbca5c9b4 100644 (file)
   "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)
-    ("blue"    4     0     0 65535)
-    ("yellow"  3 65535 65535     0)
-    ("green"   2     0 65535     0)
+  '(("black"   0     0     0     0)
     ("red"     1 65535     0     0)
-    ("black"   0     0     0     0))
+    ("green"   2     0 65535     0)
+    ("yellow"  3 65535 65535     0)
+    ("blue"    4     0     0 65535)
+    ("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 @@ color."
   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."