summaryrefslogtreecommitdiff
path: root/lisp/use-package/use-package-ensure.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/use-package/use-package-ensure.el')
-rw-r--r--lisp/use-package/use-package-ensure.el24
1 files changed, 13 insertions, 11 deletions
diff --git a/lisp/use-package/use-package-ensure.el b/lisp/use-package/use-package-ensure.el
index 1c9cd08ff19..46de5a8a3a4 100644
--- a/lisp/use-package/use-package-ensure.el
+++ b/lisp/use-package/use-package-ensure.el
@@ -138,17 +138,19 @@ manually updated package."
(list t)
(use-package-only-one (symbol-name keyword) args
#'(lambda (label arg)
- (pcase arg
- ((pred symbolp)
- (list arg))
- (`(,(and pkg (pred symbolp))
- :pin ,(and repo (or (pred stringp)
- (pred symbolp))))
- (list (cons pkg repo)))
- (_
- (use-package-error
- (concat ":ensure wants an optional package name "
- "(an unquoted symbol name), or (<symbol> :pin <string>)"))))))))
+ (cond
+ ((symbolp arg)
+ (list arg))
+ ((and (listp arg) (= 3 (length arg))
+ (symbolp (nth 0 arg))
+ (eq :pin (nth 1 arg))
+ (or (stringp (nth 2 arg))
+ (symbolp (nth 2 arg))))
+ (list (cons (nth 0 arg) (nth 2 arg))))
+ (t
+ (use-package-error
+ (concat ":ensure wants an optional package name "
+ "(an unquoted symbol name), or (<symbol> :pin <string>)"))))))))
(defun use-package-ensure-elpa (name args state &optional no-refresh)
(dolist (ensure args)