[Top][All Lists]

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

bug#5502: compile.el uses non-mode-line faces in the mode line

From: Karl Berry
Subject: bug#5502: compile.el uses non-mode-line faces in the mode line
Date: Mon, 1 Feb 2010 02:04:05 GMT

In Emacs 23.1[.92], compile.el uses non-mode-line faces to propertize
text used in the mode line.  My goal is to have inverse video in the
mode line, and regular text only (no underlines, fake bold, etc.) in the
buffer contents.

To reproduce:
emacs -nw --no-site --no-init -l inv.el  # where invtest.el is appended
M-x compile RET
[backspace to wipe out the "make -k", then] false RET

Observe that the compilation status in the mode line is in "regular"
video, unlike the rest of the mode line.


Here is invtest.el:

(setq compilation-mode-hook 'k-inverse-video-hook)
(defun k-inverse-video-hook ()
  (set-face-attribute 'compilation-info    nil :inverse-video nil)
  (set-face-attribute 'compilation-warning nil :inverse-video nil)
  (set-face-attribute 'compilation-error   nil :inverse-video nil)

P.S. I don't suppose this is news to you, but it is apparently coming
from the following three pieces of compile.el.  If the mode line stuff
used face names like mode-line-compilation-{warning,info,error}, which
could default to the same values they get now, then (I surmise) they
could be controlled independently.  Everything else I've run across so
far does use face names mode-line-* for text that goes in the mode line.

              (setq mode-line-process
                    (list (propertize ":%s" 'face 'compilation-warning)))
          (setq mode-line-process
                (list (propertize ":run" 'face 'compilation-warning)))
            (propertize out-string
                        'help-echo msg 'face (if (> exit-status 0)

reply via email to

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