aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoakim Jalap2016-08-13 12:26:27 +0300
committerEli Zaretskii2016-08-13 12:26:27 +0300
commitc1021ba910efac334027ad03ff6aed64306fad3c (patch)
tree00f3563dc739ac8dc33847faa90f8a96efc4397b
parent6bb55a25fa77ce0f92401aa9945a506e9343aad5 (diff)
downloademacs-c1021ba910efac334027ad03ff6aed64306fad3c.tar.gz
emacs-c1021ba910efac334027ad03ff6aed64306fad3c.zip
Fix "C-u" when an input method is active
* lisp/international/quail.el (quail-input-method): Defer to the input method iff 'overriding-terminal-local-map' is 'universal-argument-map' and the given key has no binding there. (Bug#22958)
-rw-r--r--lisp/international/quail.el10
1 files changed, 9 insertions, 1 deletions
diff --git a/lisp/international/quail.el b/lisp/international/quail.el
index f5e390278ca..320d783d410 100644
--- a/lisp/international/quail.el
+++ b/lisp/international/quail.el
@@ -1333,7 +1333,15 @@ If STR has `advice' text property, append the following special event:
1333 1333
1334(defun quail-input-method (key) 1334(defun quail-input-method (key)
1335 (if (or buffer-read-only 1335 (if (or buffer-read-only
1336 overriding-terminal-local-map 1336 (and overriding-terminal-local-map
1337 ;; If the overriding map is `universal-argument-map', that
1338 ;; must mean the user has pressed 'C-u KEY'. If KEY has a
1339 ;; binding in `universal-argument-map' just return
1340 ;; (list KEY), otherwise act as if there was no
1341 ;; overriding map.
1342 (or (not (eq (cadr overriding-terminal-local-map)
1343 universal-argument-map))
1344 (lookup-key overriding-terminal-local-map (vector key))))
1337 overriding-local-map) 1345 overriding-local-map)
1338 (list key) 1346 (list key)
1339 (quail-setup-overlays (quail-conversion-keymap)) 1347 (quail-setup-overlays (quail-conversion-keymap))