summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChong Yidong <cyd@gnu.org>2012-01-05 19:12:11 +0800
committerChong Yidong <cyd@gnu.org>2012-01-05 19:12:11 +0800
commit0448233577f904d83506626769878cd576120a6e (patch)
treefedb3f1d50b6d8fc426d966e7c16f904a34f6263
parentb0d7d8af0743998f6d9161b28d269e100b415861 (diff)
downloademacs-0448233577f904d83506626769878cd576120a6e.tar.gz
Tweak handling of custom-enabled-themes and custom-safe-themes.
* lisp/cus-theme.el (custom-theme-merge-theme): Ignore custom-enabled-themes and custom-safe-themes. * lisp/custom.el (enable-theme): Don't set custom-safe-themes.
-rw-r--r--lisp/ChangeLog9
-rw-r--r--lisp/cus-theme.el15
-rw-r--r--lisp/custom.el8
3 files changed, 23 insertions, 9 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index d03ec37bf11..58e81f6a87e 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,9 +1,16 @@
+2012-01-05 Chong Yidong <cyd@gnu.org>
+
+ * custom.el (enable-theme): Don't set custom-safe-themes.
+
+ * cus-theme.el (custom-theme-merge-theme): Ignore
+ custom-enabled-themes and custom-safe-themes.
+
2012-01-05 Michael R. Mauger <mmaug@yahoo.com>
* progmodes/sql.el (sql-login-hook): Add hook to respond to the
first prompt in `sql-interacive-mode'.
(sql-mode-oracle-font-lock-keywords): Add CONNECT_BY_* builtin
- keywords.
+ keywords.
(sql-mode-mysql-font-lock-keywords): Add ELSEIF keyword.
(sql-product-interactive): Bug fix: Set `sql-buffer' in
context of original buffer. Invoke `sql-login-hook'.
diff --git a/lisp/cus-theme.el b/lisp/cus-theme.el
index e662d8c84c7..6bddb02add6 100644
--- a/lisp/cus-theme.el
+++ b/lisp/cus-theme.el
@@ -329,11 +329,16 @@ SPEC, if non-nil, should be a face spec to which to set the widget."
(load-theme theme nil t))
(let ((settings (reverse (get theme 'theme-settings))))
(dolist (setting settings)
- (funcall (if (eq (car setting) 'theme-value)
- 'custom-theme-add-variable
- 'custom-theme-add-face)
- (nth 1 setting)
- (nth 3 setting))))
+ (let ((option (eq (car setting) 'theme-value))
+ (name (nth 1 setting))
+ (value (nth 3 setting)))
+ (unless (and option
+ (memq name '(custom-enabled-themes
+ custom-safe-themes)))
+ (funcall (if option
+ 'custom-theme-add-variable
+ 'custom-theme-add-face)
+ name value)))))
theme)
;; From cus-edit.el
diff --git a/lisp/custom.el b/lisp/custom.el
index b41a86dd5ee..d3752789e28 100644
--- a/lisp/custom.el
+++ b/lisp/custom.el
@@ -1110,7 +1110,9 @@ hash of a safe theme file, or the symbol `default', which stands
for any theme in the built-in Emacs theme directory (a directory
named \"themes\" in `data-directory').
-If the value is t, Emacs treats all themes as safe."
+If the value is t, Emacs treats all themes as safe.
+
+This variable cannot be set in a Custom theme."
:type '(choice (repeat :tag "List of safe themes"
(choice string
(const :tag "Built-in themes" default)))
@@ -1285,8 +1287,8 @@ precedence (after `user')."
((eq prop 'theme-face)
(custom-theme-recalc-face symbol))
((eq prop 'theme-value)
- ;; Don't change `custom-enabled-themes'; that's special.
- (unless (eq symbol 'custom-enabled-themes)
+ ;; Ignore `custom-enabled-themes' and `custom-safe-themes'.
+ (unless (memq symbol '(custom-enabled-themes custom-safe-themes))
(custom-theme-recalc-variable symbol)))))))
(unless (eq theme 'user)
(setq custom-enabled-themes