summaryrefslogtreecommitdiff
path: root/lisp/use-package
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/use-package')
-rw-r--r--lisp/use-package/use-package.el11
1 files changed, 5 insertions, 6 deletions
diff --git a/lisp/use-package/use-package.el b/lisp/use-package/use-package.el
index d5226e3a9d3..a225d99810f 100644
--- a/lisp/use-package/use-package.el
+++ b/lisp/use-package/use-package.el
@@ -419,7 +419,7 @@ manually updated package."
(let ((archive-symbol (if (symbolp archive) archive (intern archive)))
(archive-name (if (stringp archive) archive (symbol-name archive))))
(if (use-package--archive-exists-p archive-symbol)
- (add-to-list 'package-pinned-packages (cons package archive-name) t)
+ (add-to-list 'package-pinned-packages (cons package archive-name))
(error "Archive '%s' requested for package '%s' is not available."
archive-name package))
(package-initialize t)))
@@ -427,11 +427,10 @@ manually updated package."
(defun use-package-handler/:pin (name keyword archive-name rest state)
(let ((body (use-package-process-keywords name rest state))
(pin-form (if archive-name
- `(use-package-pin-package ',name ,archive-name))))
- ;; We want to avoid pinning packages when the `use-package'
- ;; macro is being macro-expanded by elisp completion (see
- ;; `lisp--local-variables'), but still do pin packages when
- ;; byte-compiling to avoid requiring `package' at runtime.
+ `(use-package-pin-package ',(use-package-as-symbol name)
+ ,archive-name))))
+ ;; Pinning should occur just before ensuring
+ ;; See `use-package-handler/:ensure'.
(if (bound-and-true-p byte-compile-current-file)
(eval pin-form) ; Eval when byte-compiling,
(push pin-form body)) ; or else wait until runtime.