Subject: Re: bug#17695: 24.3.91; [REGRESSION] face diff-added disappears in deeper-blue theme

From: Juri Linkov <[email-masked]>
Date: Thu, 05 Jun 2014 03:39:04 +0300

> Note: this bug doesn't happen in emacs 24.3.
>
> 1. emacs -Q
> 2. M-x load-theme RET deeper-blue RET
> 3. open a patch in diff-mode.
>
> Face: diff-added (sample) (customize this face)
>
> Documentation:
> `diff-mode' face used to highlight added lines.
>
> Defined in `diff-mode.el'.
>
>            Family: unspecified
>           Foundry: unspecified
>             Width: unspecified
>            Height: unspecified
>            Weight: unspecified
>             Slant: unspecified
>        Foreground: unspecified
> DistantForeground: unspecified
>        Background: unspecified
>         Underline: unspecified
>          Overline: unspecified
>    Strike-through: unspecified
>               Box: unspecified
>           Inverse: unspecified
>           Stipple: unspecified
>              Font: unspecified
>           Fontset: unspecified
>           Inherit: unspecified

This patch should fix it:

=== modified file 'etc/themes/deeper-blue-theme.el'
--- etc/themes/deeper-blue-theme.el	2014-01-01 07:43:34 +0000
+++ etc/themes/deeper-blue-theme.el	2014-06-05 00:38:30 +0000
@@ -40,8 +40,8 @@ (let ((class '((class color) (min-colors
    `(cperl-hash-face ((,class (:foreground "coral1"))))
    `(cursor ((,class (:background "green"))))
    `(default ((,class (:background "#181a26" :foreground "gray80"))))
-   `(diff-added ((,class (nil))))
-   `(diff-changed ((,class (nil))))
+   `(diff-added ((,class (:inherit diff-indicator-added))))
+   `(diff-changed ((,class (:inherit diff-indicator-changed))))
    `(diff-context ((,class (:foreground "seashell4"))))
    `(diff-file-header ((,class (:background "grey60"))))
    `(diff-function ((,class (:inherit diff-header))))
@@ -52,7 +52,7 @@ (let ((class '((class color) (min-colors
    `(diff-indicator-changed ((,class (:foreground "white" :background "dodgerblue4"))))
    `(diff-indicator-removed ((,class (:foreground "white" :background "indianred4"))))
    `(diff-refine-change ((,class (:background "skyblue4"))))
-   `(diff-removed ((,class (nil))))
+   `(diff-removed ((,class (:inherit diff-indicator-removed))))
    `(dired-marked ((,class (:background "dodgerblue3" :foreground "white"))))
    `(ediff-current-diff-A ((,class (:background "green4" :foreground "white"))))
    `(ediff-current-diff-B ((,class (:background "darkorange3" :foreground "white"))))