mlf176f2 pushed a commit to branch externals/ergoemacs-mode in repository elpa.
commit 52c1d54ed6811f48f3726eff66cf5ff4fe5b8d55 Author: Matthew L. Fidler <[email protected]> Date: Fri Jun 13 07:39:54 2014 -0500 Allow ergoemacs-rm-key to remove a list --- ergoemacs-theme-engine.el | 52 ++++++++++++++++++++++++-------------------- 1 files changed, 28 insertions(+), 24 deletions(-) diff --git a/ergoemacs-theme-engine.el b/ergoemacs-theme-engine.el index 6e4d154..29ea300 100644 --- a/ergoemacs-theme-engine.el +++ b/ergoemacs-theme-engine.el @@ -1235,7 +1235,8 @@ The actual keymap changes are included in `ergoemacs-emulation-mode-map-alist'." (let ((vector-key (or (and (vectorp key) key) (read-kbd-macro (key-description key) t)))) (setq final-read-map (or (and (memq (elt vector-key 0) '(3 24)) ;; Keep `C-c' and `C-x'. - (memq (lookup-key final-read-map (vector (elt vector-key 0))) '(ergoemacs-ctl-x ergoemacs-ctl-c)) + (memq (lookup-key final-read-map (vector (elt vector-key 0))) + '(ergoemacs-ctl-x ergoemacs-ctl-c)) final-read-map) (ergoemacs-rm-key final-read-map key)) final-shortcut-map (ergoemacs-rm-key final-shortcut-map key) @@ -2330,29 +2331,32 @@ If OFF is non-nil, turn off the options instead." Also add global overrides from the current global map, if necessary. Returns new keymap." (if keymap - (let ((new-keymap (copy-keymap keymap))) - (cond - ((keymapp (nth 1 new-keymap)) - (pop new-keymap) - (setq new-keymap - (mapcar - (lambda(map) - (let ((lk (lookup-key map key)) lk2 lk3) - (cond - ((integerp lk) - (setq lk2 (lookup-key (current-global-map) key)) - (setq lk3 (lookup-key map (substring key 0 lk))) - (when (and (or (commandp lk2) (keymapp lk2)) (not lk3)) - (define-key map key lk2))) - (lk - (define-key map key nil)))) - map) - new-keymap)) - (push 'keymap new-keymap) - new-keymap) - (t - (define-key new-keymap key nil) - new-keymap))))) + (if (listp key) + (dolist (rm-key key) + (ergoemacs-rm-key keymap rm-key)) + (let ((new-keymap (copy-keymap keymap))) + (cond + ((keymapp (nth 1 new-keymap)) + (pop new-keymap) + (setq new-keymap + (mapcar + (lambda(map) + (let ((lk (lookup-key map key)) lk2 lk3) + (cond + ((integerp lk) + (setq lk2 (lookup-key (current-global-map) key)) + (setq lk3 (lookup-key map (substring key 0 lk))) + (when (and (or (commandp lk2) (keymapp lk2)) (not lk3)) + (define-key map key lk2))) + (lk + (define-key map key nil)))) + map) + new-keymap)) + (push 'keymap new-keymap) + new-keymap) + (t + (define-key new-keymap key nil) + new-keymap)))))) (defvar ergoemacs-M-x "M-x ")
