From: Eli Zaretskii Date: Wed, 4 Sep 2024 17:43:25 +0000 (+0300) Subject: Fix :hook in 'use-package' X-Git-Tag: archive/raspbian/1%30.1+1-3+rpi1^2~2^2~20^2~462 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=e4dc6711b02bf459c1e64794107c5046f9e3c054;p=emacs.git Fix :hook in 'use-package' * lisp/use-package/use-package-core.el (use-package-handler/:hook): Support mode variables in :hook declarations. (Bug#72993) --- diff --git a/lisp/use-package/use-package-core.el b/lisp/use-package/use-package-core.el index 2c5fc560749..6c3d350c610 100644 --- a/lisp/use-package/use-package-core.el +++ b/lisp/use-package/use-package-core.el @@ -1376,13 +1376,16 @@ enable gathering statistics." (when fun (mapcar #'(lambda (sym) - (if (boundp sym) - `(add-hook (quote ,sym) (function ,fun)) - `(add-hook - (quote ,(intern - (concat (symbol-name sym) - use-package-hook-name-suffix))) - (function ,fun)))) + (let ((symname (symbol-name sym))) + (if (and (boundp sym) + ;; Mode variables are usually bound, but + ;; their hooks are named FOO-mode-hook. + (not (string-suffix-p "-mode" symname))) + `(add-hook (quote ,sym) (function ,fun)) + `(add-hook + (quote ,(intern + (concat symname use-package-hook-name-suffix))) + (function ,fun))))) (use-package-hook-handler-normalize-mode-symbols syms))))) (use-package-normalize-commands args))))