]> code.delx.au - gnu-emacs/commitdiff
Fix for custom-theme-write-faces.
authorChong Yidong <cyd@gnu.org>
Sun, 25 Mar 2012 12:52:49 +0000 (20:52 +0800)
committerChong Yidong <cyd@gnu.org>
Sun, 25 Mar 2012 12:52:49 +0000 (20:52 +0800)
* lisp/cus-theme.el (custom-theme-write-faces): Retrieve current face
spec with custom-face-get-current-spec if its :shown-value is not
determined yet.

Fixes: debbugs:9337
lisp/ChangeLog
lisp/cus-theme.el

index 72cd250bfdfee8457cee36af0be1cdd6041ca4f3..639d3f6d572b5a8e1532ed8ce6cd240c584949c8 100644 (file)
@@ -1,5 +1,9 @@
 2012-03-25  Chong Yidong  <cyd@gnu.org>
 
+       * cus-theme.el (custom-theme-write-faces): Retrieve current face
+       spec with custom-face-get-current-spec if its :shown-value is not
+       determined yet (Bug#9337).
+
        * button.el (button-at): Minor addition to docstring.
 
 2012-03-24  Simon Leinen  <simon.leinen@gmail.com>
index 79799049378c7480420eb3fec0dc9410e6d7cbb0..ba2fa969fc473e99c1b4e89c5e01239b7d3f6abf 100644 (file)
@@ -437,14 +437,17 @@ It includes all faces in list FACES."
       (princ theme)
       (princ "\n")
       (dolist (spec faces)
+       ;; Insert the face iff the checkbox widget is checked.
        (when (widget-get (nth 1 spec) :value)
          (let* ((symbol (nth 0 spec))
                 (widget (nth 2 spec))
                 (value
-                 (if (car-safe (widget-get widget :children))
-                     (custom-face-widget-to-spec widget)
-                   ;; Child is null if the widget is closed (hidden).
-                   (widget-get widget :shown-value))))
+                 (cond
+                  ((car-safe (widget-get widget :children))
+                   (custom-face-widget-to-spec widget))
+                  ;; Child is null if the widget is closed (hidden).
+                  ((widget-get widget :shown-value))
+                  (t (custom-face-get-current-spec symbol)))))
            (when (and (facep symbol) value)
              (princ (if (bolp) " '(" "\n '("))
              (prin1 symbol)