Fix :hook in 'use-package'

* lisp/use-package/use-package-core.el
(use-package-handler/:hook): Support mode variables in :hook
declarations.  (Bug#72993)
This commit is contained in:
Eli Zaretskii 2024-09-04 20:43:25 +03:00
parent c1cd036d27
commit e4dc6711b0

View file

@ -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))))