# HG changeset patch # User Chong Yidong # Date 1287516160 14400 # Node ID b23826c3d7a150e4084b7bc8a9677d6e5791b296 # Parent bd12e9f7bf79e84e1922fe45f417e23013ea0250 Revert 2010-10-18 change; use safe-functions instead. * 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. diff -r bd12e9f7bf79 -r b23826c3d7a1 lisp/ChangeLog --- a/lisp/ChangeLog Tue Oct 19 15:20:33 2010 -0400 +++ b/lisp/ChangeLog Tue Oct 19 15:22:40 2010 -0400 @@ -1,3 +1,13 @@ +2010-10-19 Chong Yidong + + * 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 * bindings.el: Remove end dashes in default mode-line-format. diff -r bd12e9f7bf79 -r b23826c3d7a1 lisp/cus-face.el --- a/lisp/cus-face.el Tue Oct 19 15:20:33 2010 -0400 +++ b/lisp/cus-face.el Tue Oct 19 15:22:40 2010 -0400 @@ -349,8 +349,6 @@ (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 -r bd12e9f7bf79 -r b23826c3d7a1 lisp/custom.el --- a/lisp/custom.el Tue Oct 19 15:20:33 2010 -0400 +++ b/lisp/custom.el Tue Oct 19 15:22:40 2010 -0400 @@ -993,8 +993,6 @@ (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 @@ (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 @@ ;; 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 @@ :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