bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#9722: list-colors-duplicates does not exclude enough colors on Windo


From: Juanma Barranquero
Subject: bug#9722: list-colors-duplicates does not exclude enough colors on Windows
Date: Tue, 11 Oct 2011 00:49:43 +0200

Package: emacs
Severity: minor


On Windows, `list-colors-duplicates' matches the color name against
the output of `w32-default-color-map', to avoid conflating colors
which are RGB-equal, but semantically different, like SystemMenuText
and SystemWindowText.

Unfortunately, that makes colors not in that list different even if
they are not, in particular all the grayNN/greyNN pairs.

The following patch discards that check, and uses instead the
heuristic that the only special colors on Windows are the ones
starting with "System". That has always been the case anyway, and it's
unlikely for the user to define a non-special System* color (and if he
does, this patch will cause no harm anyway, it will just not be
considered a duplicate of other colors).

    Juanma



2011-10-10  Juanma Barranquero  <address@hidden>

        * facemenu.el (list-colors-duplicates): On Windows, detect more
        duplicates by assuming that only colors matching "^System" are
        special "system colors".


=== modified file 'lisp/facemenu.el'
--- lisp/facemenu.el    2011-09-11 01:55:09 +0000
+++ lisp/facemenu.el    2011-10-10 22:39:20 +0000
@@ -639,8 +639,8 @@
         (l list))
     (while (cdr l)
       (if (and (facemenu-color-equal (car (car l)) (car (car (cdr l))))
-              (not (if (fboundp 'w32-default-color-map)
-                       (not (assoc (car (car l)) (w32-default-color-map))))))
+              (not (and (eq system-type 'windows-nt)
+                        (string-match-p "^System" (car (car l))))))
          (progn
            (setcdr (car l) (cons (car (car (cdr l))) (cdr (car l))))
            (setcdr l (cdr (cdr l))))





reply via email to

[Prev in Thread] Current Thread [Next in Thread]