Fix stacking prefixes in map!

This commit is contained in:
Henrik Lissner
2015-12-09 02:10:44 -05:00
parent 52db795404
commit 687b78d566

View File

@ -131,7 +131,8 @@ Examples:
("o" . operator) ("o" . operator)
("m" . motion) ("m" . motion)
("r" . replace))) ("r" . replace)))
key def prefix states) (prefix (if (boundp 'prefix) prefix))
key def states)
(unless keymaps (unless keymaps
(setq keymaps default-keymaps)) (setq keymaps default-keymaps))
(while rest (while rest
@ -150,7 +151,7 @@ Examples:
(setq key :prefix)) (setq key :prefix))
(pcase key (pcase key
;; TODO: Data checks ;; TODO: Data checks
(:prefix (setq prefix (kbd (pop rest))) nil) (:prefix (setq prefix (concat prefix (kbd (pop rest)))) nil)
(:map (setq keymaps (-list (pop rest))) nil) (:map (setq keymaps (-list (pop rest))) nil)
(:unset `(,(macroexpand `(map! ,(kbd (pop rest)) nil)))) (:unset `(,(macroexpand `(map! ,(kbd (pop rest)) nil))))
(:after (prog1 `((after! ,(pop rest) ,(macroexpand `(map! ,@rest)))) (setq rest '()))) (:after (prog1 `((after! ,(pop rest) ,(macroexpand `(map! ,@rest)))) (setq rest '())))