summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/ChangeLog10
-rw-r--r--lisp/cus-face.el2
-rw-r--r--lisp/custom.el9
3 files changed, 17 insertions, 4 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index aae1e0e81c0..14691b44373 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,13 @@
+2010-10-19 Chong Yidong <cyd@stupidchicken.com>
+
+ * cus-face.el (custom-theme-set-faces): Revert 2010-10-18 change.
+ Don't mark as safe.
+
+ * custom.el (custom-theme-set-variables): Likewise.
+ (load-theme): Add custom-theme-set-faces and
+ custom-theme-set-variables to safe-functions while loading.
+ (custom-enabled-themes): Mark as risky.
+
2010-10-18 Julien Danjou <julien@danjou.info>
* bindings.el: Remove end dashes in default mode-line-format.
diff --git a/lisp/cus-face.el b/lisp/cus-face.el
index fd6db787d32..ebb20012afa 100644
--- a/lisp/cus-face.el
+++ b/lisp/cus-face.el
@@ -349,8 +349,6 @@ FACE's list property `theme-face' \(using `custom-push-theme')."
(put face 'face-override-spec nil)
(face-spec-set face spec t))))))))
-(put 'custom-theme-set-faces 'safe-function t)
-
;; XEmacs compability function. In XEmacs, when you reset a Custom
;; Theme, you have to specify the theme to reset it to. We just apply
;; the next theme.
diff --git a/lisp/custom.el b/lisp/custom.el
index 8a7739d1be4..bcb78e46a3c 100644
--- a/lisp/custom.el
+++ b/lisp/custom.el
@@ -993,8 +993,6 @@ in SYMBOL's list property `theme-value' \(using `custom-push-theme')."
(and (or now (default-boundp symbol))
(put symbol 'variable-comment comment)))))))
-(put 'custom-theme-set-variables 'safe-function t)
-
;;; Defining themes.
@@ -1107,6 +1105,8 @@ property `theme-feature' (which is usually a symbol created by
(let ((custom-enabling-themes t))
(enable-theme 'user))))
+(defvar safe-functions) ; From unsafep.el
+
(defun load-theme (theme &optional no-enable)
"Load a theme's settings from its file.
Normally, this also enables the theme; use `disable-theme' to
@@ -1135,7 +1135,11 @@ the theme."
;; Instead of simply loading the theme file, read it manually.
(with-temp-buffer
(insert-file-contents fn)
+ (require 'unsafep)
(let ((custom--inhibit-theme-enable no-enable)
+ (safe-functions (append '(custom-theme-set-variables
+ custom-theme-set-faces)
+ safe-functions))
form scar)
(while (setq form (let ((read-circle nil))
(condition-case nil
@@ -1234,6 +1238,7 @@ and always takes precedence over other Custom Themes."
:group 'customize
:type '(repeat symbol)
:set-after '(custom-theme-directory custom-theme-load-path)
+ :risky t
:set (lambda (symbol themes)
;; Avoid an infinite loop when custom-enabled-themes is
;; defined in a theme (e.g. `user'). Enabling the theme sets