mirror of
https://github.com/masscollaborationlabs/emacs.git
synced 2025-07-07 20:59:37 +00:00
:map no longer accepts lists; only eval-after-load if necessary
Fixes https://github.com/jwiegley/use-package/issues/324
This commit is contained in:
parent
a1c4e6d0ab
commit
af65fbea63
1 changed files with 14 additions and 20 deletions
|
@ -211,7 +211,6 @@ function symbol (unquoted)."
|
||||||
(not (eq (car (cdr (cdr args))) :map)))
|
(not (eq (car (cdr (cdr args))) :map)))
|
||||||
(setq args (cons :map (cons 'global-map args))))
|
(setq args (cons :map (cons 'global-map args))))
|
||||||
(let* ((map (plist-get args :map))
|
(let* ((map (plist-get args :map))
|
||||||
(maps (if (listp map) map (list map)))
|
|
||||||
(doc (plist-get args :prefix-docstring))
|
(doc (plist-get args :prefix-docstring))
|
||||||
(prefix-map (plist-get args :prefix-map))
|
(prefix-map (plist-get args :prefix-map))
|
||||||
(prefix (plist-get args :prefix))
|
(prefix (plist-get args :prefix))
|
||||||
|
@ -239,12 +238,14 @@ function symbol (unquoted)."
|
||||||
(nconc first (list (car args)))
|
(nconc first (list (car args)))
|
||||||
(setq first (list (car args))))
|
(setq first (list (car args))))
|
||||||
(setq args (cdr args))))
|
(setq args (cdr args))))
|
||||||
(cl-flet ((wrap (maps bindings)
|
(cl-flet
|
||||||
(if (and maps pkg
|
((wrap (map bindings)
|
||||||
(not (equal maps '(global-map))))
|
(if (and map pkg (not (eq map 'global-map)))
|
||||||
|
(if (boundp map)
|
||||||
|
bindings
|
||||||
`((eval-after-load
|
`((eval-after-load
|
||||||
,(if (symbolp pkg) `',pkg pkg)
|
,(if (symbolp pkg) `',pkg pkg)
|
||||||
'(progn ,@bindings)))
|
'(progn ,@bindings))))
|
||||||
bindings)))
|
bindings)))
|
||||||
(append
|
(append
|
||||||
(when prefix-map
|
(when prefix-map
|
||||||
|
@ -253,23 +254,16 @@ function symbol (unquoted)."
|
||||||
,@(if menu-name
|
,@(if menu-name
|
||||||
`((define-prefix-command ',prefix-map nil ,menu-name))
|
`((define-prefix-command ',prefix-map nil ,menu-name))
|
||||||
`((define-prefix-command ',prefix-map)))
|
`((define-prefix-command ',prefix-map)))
|
||||||
,@(if (and maps (not (equal maps '(global-map))))
|
,@(if (and map (not (eq map 'global-map)))
|
||||||
(wrap maps
|
(wrap map `((bind-key ,prefix ',prefix-map ,map ,filter)))
|
||||||
(mapcar
|
|
||||||
#'(lambda (m)
|
|
||||||
`(bind-key ,prefix ',prefix-map ,m ,filter))
|
|
||||||
maps))
|
|
||||||
`((bind-key ,prefix ',prefix-map nil ,filter)))))
|
`((bind-key ,prefix ',prefix-map nil ,filter)))))
|
||||||
(wrap maps
|
(wrap map
|
||||||
(cl-mapcan
|
(cl-mapcan
|
||||||
(lambda (form)
|
(lambda (form)
|
||||||
(if prefix-map
|
(if prefix-map
|
||||||
`((bind-key ,(car form) ',(cdr form) ,prefix-map ,filter))
|
`((bind-key ,(car form) ',(cdr form) ,prefix-map ,filter))
|
||||||
(if (and maps (not (equal maps '(global-map))))
|
(if (and map (not (eq map 'global-map)))
|
||||||
(mapcar
|
`((bind-key ,(car form) ',(cdr form) ,map ,filter))
|
||||||
#'(lambda (m)
|
|
||||||
`(bind-key ,(car form) ',(cdr form) ,m ,filter))
|
|
||||||
maps)
|
|
||||||
`((bind-key ,(car form) ',(cdr form) nil ,filter)))))
|
`((bind-key ,(car form) ',(cdr form) nil ,filter)))))
|
||||||
first))
|
first))
|
||||||
(when next
|
(when next
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue