mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-07 06:50:23 -08:00
Allow vectors to be passed to :bind again
Fixes https://github.com/jwiegley/use-package/issues/166
This commit is contained in:
parent
55d6bb00ca
commit
05c02aee86
1 changed files with 14 additions and 7 deletions
|
|
@ -187,22 +187,24 @@ the user specified.")
|
|||
(use-package-error
|
||||
(concat label " wants a list"))))
|
||||
|
||||
(defsubst use-package-is-sympair (x)
|
||||
(defsubst use-package-is-sympair (x &optional allow-vector)
|
||||
"Return t if X has the type (STRING . SYMBOL)."
|
||||
(and (consp x)
|
||||
(stringp (car x))
|
||||
(or (stringp (car x))
|
||||
(and allow-vector (vectorp (car x))))
|
||||
(symbolp (cdr x))))
|
||||
|
||||
(defun use-package-normalize-pairs (name-symbol label arg &optional recursed)
|
||||
(defun use-package-normalize-pairs
|
||||
(name-symbol label arg &optional recursed allow-vector)
|
||||
"Normalize a list of string/symbol pairs."
|
||||
(cond
|
||||
((stringp arg)
|
||||
((or (stringp arg) (and allow-vector (vectorp arg)))
|
||||
(list (cons arg name-symbol)))
|
||||
((use-package-is-sympair arg)
|
||||
((use-package-is-sympair arg allow-vector)
|
||||
(list arg))
|
||||
((and (not recursed) (listp arg) (listp (cdr arg)))
|
||||
(mapcar #'(lambda (x) (car (use-package-normalize-pairs
|
||||
name-symbol label x t))) arg))
|
||||
name-symbol label x t allow-vector))) arg))
|
||||
(t
|
||||
(use-package-error
|
||||
(concat label " wants a string, (string . symbol) or list of these")))))
|
||||
|
|
@ -261,7 +263,12 @@ the user specified.")
|
|||
(cond ((memq head '(:when :unless)) :if)
|
||||
(t head))
|
||||
(pcase head
|
||||
((or :bind :bind* :bind-keymap :bind-keymap* :interpreter :mode)
|
||||
((or :bind :bind* :bind-keymap :bind-keymap*)
|
||||
(use-package-as-one (symbol-name head) args
|
||||
(lambda (label arg)
|
||||
(use-package-normalize-pairs name-symbol label arg nil t))))
|
||||
|
||||
((or :interpreter :mode)
|
||||
(use-package-as-one (symbol-name head) args
|
||||
(apply-partially #'use-package-normalize-pairs name-symbol)))
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue