Move :ensure option from macro expansion phase to runtime phase

This commit is contained in:
Ivan Goncharov 2015-11-03 14:43:51 +13:00
parent ff8bdfcdca
commit ac47f783da

View file

@ -463,13 +463,11 @@ manually updated package."
(defun use-package-handler/:ensure (name keyword ensure rest state) (defun use-package-handler/:ensure (name keyword ensure rest state)
(let ((body (use-package-process-keywords name rest state))) (let ((body (use-package-process-keywords name rest state)))
;; This happens at macro expansion time, not when the expanded code is `((let ((package-name (or (and (eq ,ensure t) (use-package-as-symbol ',name)) ,ensure)))
;; compiled or evaluated. (when package-name
(let ((package-name (or (and (eq ensure t) (use-package-as-symbol name)) ensure))) (require 'package)
(when package-name (use-package-ensure-elpa package-name)))
(require 'package) ,@body)))
(use-package-ensure-elpa package-name)))
body))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ;;