Function: use-package-pin-package

use-package-pin-package is a byte-compiled function defined in use-package-ensure.el.gz.

Signature

(use-package-pin-package PACKAGE ARCHIVE)

Documentation

Pin PACKAGE to ARCHIVE.

Source Code

;; Defined in /usr/src/emacs/lisp/use-package/use-package-ensure.el.gz
(define-inline use-package-pin-package (package archive)
  ;; Make sure the expansion of calls to `use-package' doesn't need to
  ;; load us at run-time.
  "Pin PACKAGE to ARCHIVE."
  (let* ((package (inline-const-val package))
         (archive (inline-const-val archive))
         (archive-symbol (if (symbolp archive) archive (intern archive)))
         (archive-name   (if (stringp archive) archive (symbol-name archive))))
    (unless (use-package-archive-exists-p archive-symbol)
      (warn "Archive '%s' requested for package '%s' is not available"
            archive-name package))
    (inline-quote
     (progn
       ;; FIXME: After N compiler-macro expansions, we end up with N copies of
       ;; this `(setq package-pinned-packages nil)' business.
       (defvar package-pinned-packages)
       (unless (boundp 'package-pinned-packages)
         (setq package-pinned-packages ()))
       (add-to-list 'package-pinned-packages
                    ',(cons package archive-name))))))