summaryrefslogtreecommitdiff
path: root/lisp/term/xterm.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/term/xterm.el')
-rw-r--r--lisp/term/xterm.el6
1 files changed, 5 insertions, 1 deletions
diff --git a/lisp/term/xterm.el b/lisp/term/xterm.el
index 05a129225ee..86f4583b987 100644
--- a/lisp/term/xterm.el
+++ b/lisp/term/xterm.el
@@ -516,6 +516,9 @@ The relevant features are:
(terminal-init-xterm-modify-other-keys))))))
(defun xterm--query (query handlers)
+ "Send QUERY string to the terminal and watch for a response.
+HANDLERS is an alist with elements of the form (STRING . FUNCTION).
+We run the first FUNCTION whose STRING matches the input events."
;; We used to query synchronously, but the need to use `discard-input' is
;; rather annoying (bug#6758). Maybe we could always use the asynchronous
;; approach, but it's less tested.
@@ -544,7 +547,8 @@ The relevant features are:
nil))))
(setq i (1+ i)))
(if (= i (length (car handler)))
- (funcall (cdr handler))
+ (progn (setq handlers nil)
+ (funcall (cdr handler)))
(while (> i 0)
(push (aref (car handler) (setq i (1- i)))
unread-command-events)))))))