From: Justin Burkett Date: Thu, 23 Jun 2016 14:01:33 +0000 (-0400) Subject: Move :init forms before :after and :demand X-Git-Tag: emacs-29.0.90~1306^2~15^2~294^2 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=59d34cf9ce738f92f6574449b43676b6f2bb6478;p=emacs.git Move :init forms before :after and :demand The docstring of use-package says that :init should run before the package is loaded but using :after moves the require statement ahead of :init when any package specified in :after is already loaded. In the following example, in the first case bar-x might get set before or after bar is loaded depending on if foo is already loaded at the time, while the second case always sets bar-x first. (use-package bar :after (foo) :init (setq bar-x 2) :config (bar-mode)) (use-package bar :init (setq bar-x 2) :config (bar-mode)) This commit fixes the issue and makes sure that bar-x is set before bar is loaded by use-package. Fixes https://github.com/jwiegley/use-package/issues/352. --- diff --git a/lisp/use-package/use-package.el b/lisp/use-package/use-package.el index 8c47678117d..aeea5ea9244 100644 --- a/lisp/use-package/use-package.el +++ b/lisp/use-package/use-package.el @@ -144,9 +144,9 @@ the user specified." :defines :functions :defer + :init :after :demand - :init :config :diminish :delight)