]> git.eshelyaron.com Git - emacs.git/commitdiff
Support separate fg and bg colors in ansi-color.el
authorLeo Liu <sdl.web@gmail.com>
Sun, 27 Mar 2011 01:56:35 +0000 (09:56 +0800)
committerLeo Liu <sdl.web@gmail.com>
Sun, 27 Mar 2011 01:56:35 +0000 (09:56 +0800)
A color suitable for foreground text can make unreadable text if used
as background color, and vice versa.

lisp/ChangeLog
lisp/ansi-color.el

index f1b5361926846e25f4fc251fb471b258468746c6..f6d06821062e0d9dcc45de62077191c84a385c03 100644 (file)
@@ -1,3 +1,9 @@
+2011-03-27  Leo Liu  <sdl.web@gmail.com>
+
+       * ansi-color.el (ansi-color-names-vector): Allow cons cell value
+       for foreground and background colors.
+       (ansi-color-make-color-map): Adapt.
+
 2011-03-25  Leo Liu  <sdl.web@gmail.com>
 
        * midnight.el (midnight-time-float): Remove.  Note it calculates
index 2b43940c1bd78a4e73c8ec5f8ec69aa8ec4daf79..ff7edf40dcb0c4ed5bafaf50b35548efb69ee27f 100644 (file)
@@ -132,8 +132,18 @@ Parameter  Color
   37  47   white
 
 This vector is used by `ansi-color-make-color-map' to create a color
-map.  This color map is stored in the variable `ansi-color-map'."
-  :type '(vector string string string string string string string string)
+map.  This color map is stored in the variable `ansi-color-map'.
+
+Each element may also be a cons cell where the car and cdr specify the
+foreground and background colors, respectively."
+  :type '(vector (choice color (cons color color))
+                 (choice color (cons color color))
+                 (choice color (cons color color))
+                 (choice color (cons color color))
+                 (choice color (cons color color))
+                 (choice color (cons color color))
+                 (choice color (cons color color))
+                 (choice color (cons color color)))
   :set 'ansi-color-map-update
   :initialize 'custom-initialize-default
   :group 'ansi-colors)
@@ -528,7 +538,8 @@ The face definitions are based upon the variables
     (mapc
      (function (lambda (e)
                  (aset ansi-color-map index
-                      (ansi-color-make-face 'foreground e))
+                      (ansi-color-make-face 'foreground
+                                             (if (consp e) (car e) e)))
                  (setq index (1+ index)) ))
      ansi-color-names-vector)
     ;; background attributes
@@ -536,7 +547,8 @@ The face definitions are based upon the variables
     (mapc
      (function (lambda (e)
                  (aset ansi-color-map index
-                      (ansi-color-make-face 'background e))
+                      (ansi-color-make-face 'background
+                                             (if (consp e) (cdr e) e)))
                  (setq index (1+ index)) ))
      ansi-color-names-vector)
     ansi-color-map))