Commit ecf5f74e authored by Chong Yidong's avatar Chong Yidong
Browse files

Fix M-x in Viper mode.

* lisp/emulation/viper-cmd.el (viper-intercept-ESC-key): Fix
key-binding lookup for ESC key.

Fixes: debbugs:9146
parent 431ee44b
2012-02-27 Chong Yidong <>
* emulation/viper-cmd.el (viper-intercept-ESC-key): Fix
key-binding lookup for ESC key (Bug#9146).
* font-lock.el (font-lock-specified-p): Rename from
font-lock-spec-present. Callers changed.
......@@ -1086,8 +1086,17 @@ as a Meta key and any number of multiple escapes are allowed."
(defun viper-intercept-ESC-key ()
"Function that implements ESC key in Viper emulation of Vi."
(let ((cmd (or (key-binding (viper-envelop-ESC-key))
(lambda () (interactive) (error "Viper bell")))))
;; `key-binding' needs to be called in a context where Viper's
;; minor-mode map(s) have been temporarily disabled so the ESC
;; binding to viper-intercept-ESC-key doesn't hide the binding we're
;; looking for (Bug#9146):
(let* ((event (viper-envelop-ESC-key))
(cmd (cond ((equal event viper-ESC-key)
((let ((emulation-mode-map-alists nil))
(key-binding event)))
(error "Viper bell")))))
;; call the actual function to execute ESC (if no other symbols followed)
;; or the key bound to the ESC sequence (if the sequence was issued
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment