From 10f9ec44a0cb3fe7e2454bfea859a04f1ee44667 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 9 May 2021 12:25:19 -0400 Subject: [PATCH] Revert "Convert custom-{,theme-}set-faces! to functions" This reverts commit cab8f03a513fe3d88879239f36483920dc5c5ace. Urg, they did have to be macros, otherwise arguments are evaluated immediately. Note to self, stop committing things after midnight. Fixes #5015 Closes #5016 --- core/autoload/themes.el | 42 ++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/core/autoload/themes.el b/core/autoload/themes.el index 68e304097..bed7c4f37 100644 --- a/core/autoload/themes.el +++ b/core/autoload/themes.el @@ -18,41 +18,41 @@ (`((,(car spec) ,(cdr spec)))))) ;;;###autoload -(defun custom-theme-set-faces! (theme &rest specs) +(defmacro custom-theme-set-faces! (theme &rest specs) "Apply a list of face SPECS as user customizations for THEME. THEME can be a single symbol or list thereof. If nil, apply these settings to all themes. It will apply to all themes once they are loaded." (declare (indent defun)) (let ((fn (gensym "doom--customize-themes-h-"))) - (fset - fn (lambda () - (let (custom--inhibit-theme-enable) - (dolist (theme (doom-enlist (or ,theme 'doom))) - (when (or (memq theme '(user doom)) - (custom-theme-enabled-p theme)) - (apply #'custom-theme-set-faces theme - (mapcan #'doom--custom-theme-set-face - (list ,@specs)))))))) - ;; Apply the changes immediately if the user is using the default theme or - ;; the theme has already loaded. This allows you to evaluate these macros on - ;; the fly and customize your faces iteratively. - (when (or (get 'doom-theme 'previous-themes) - (null doom-theme)) - (funcall fn)) - ;; TODO Append to `doom-load-theme-hook' with DEPTH instead when Emacs 26.x - ;; support is dropped. - (add-hook 'doom-customize-theme-hook fn 'append))) + `(progn + (defun ,fn () + (let (custom--inhibit-theme-enable) + (dolist (theme (doom-enlist (or ,theme 'doom))) + (when (or (memq theme '(user doom)) + (custom-theme-enabled-p theme)) + (apply #'custom-theme-set-faces theme + (mapcan #'doom--custom-theme-set-face + (list ,@specs))))))) + ;; Apply the changes immediately if the user is using the default theme + ;; or the theme has already loaded. This allows you to evaluate these + ;; macros on the fly and customize your faces iteratively. + (when (or (get 'doom-theme 'previous-themes) + (null doom-theme)) + (funcall #',fn)) + ;; TODO Append to `doom-load-theme-hook' with DEPTH instead when Emacs + ;; 26.x support is dropped. + (add-hook 'doom-customize-theme-hook #',fn 'append)))) ;;;###autoload -(defun custom-set-faces! (&rest specs) +(defmacro custom-set-faces! (&rest specs) "Apply a list of face SPECS as user customizations. This is a convenience macro alternative to `custom-set-face' which allows for a simplified face format, and takes care of load order issues, so you can use doom-themes' API without worry." (declare (indent defun)) - (apply #'custom-theme-set-faces! 'doom specs)) + `(custom-theme-set-faces! 'doom ,@specs)) ;;;###autoload (defun doom/reload-theme ()