aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarl Heuer1995-09-21 20:54:35 +0000
committerKarl Heuer1995-09-21 20:54:35 +0000
commitbe934b539dc69df4952e66e1e52b27ca5acade9d (patch)
treeb178929fc220828d4e9a27daeb54cdbef7c6d9fb
parent8e183d5bf28232279728b6687185134d2bf22580 (diff)
downloademacs-be934b539dc69df4952e66e1e52b27ca5acade9d.tar.gz
emacs-be934b539dc69df4952e66e1e52b27ca5acade9d.zip
(te-escape, te-escape-help): Handle non-ASCII events.
-rw-r--r--lisp/terminal.el45
1 files changed, 29 insertions, 16 deletions
diff --git a/lisp/terminal.el b/lisp/terminal.el
index 6dbd10a2a85..07baabddaa4 100644
--- a/lisp/terminal.el
+++ b/lisp/terminal.el
@@ -168,26 +168,39 @@ performance.")
168(defun te-escape () 168(defun te-escape ()
169 (interactive) 169 (interactive)
170 (let (s 170 (let (s
171 (local (current-local-map)) 171 (local ((defun te-escape ()
172 (global (current-global-map))) 172 (interactive)
173 (let (s
174 (local (current-local-map))
175 (global (current-global-map)))
173 (unwind-protect 176 (unwind-protect
174 (progn 177 (progn
175 (use-global-map terminal-escape-map) 178 (use-global-map terminal-escape-map)
176 (use-local-map terminal-escape-map) 179 (use-local-map terminal-escape-map)
177 (setq s (read-key-sequence 180 (setq s (read-key-sequence
178 (if current-prefix-arg 181 (if current-prefix-arg
179 (format "Emacs Terminal escape> %d " 182 (format "Emacs Terminal escape> %d "
180 (prefix-numeric-value current-prefix-arg)) 183 (prefix-numeric-value current-prefix-arg))
181 "Emacs Terminal escape> ")))) 184 "Emacs Terminal escape> "))))
182 (use-global-map global) 185 (use-global-map global)
183 (use-local-map local)) 186 (use-local-map local))
187
184 (message "") 188 (message "")
185 (cond ((string= s (make-string 1 terminal-escape-char)) 189
186 (setq last-command-char terminal-escape-char) 190 (cond
187 (let ((terminal-escape-char -259)) 191 ;; Certain keys give vector notation, like [escape] when
188 (te-pass-through))) 192 ;; you hit esc key...
189 ((setq s (lookup-key terminal-escape-map s)) 193 ((and (stringp s)
190 (call-interactively s))))) 194 (string= s (make-string 1 terminal-escape-char)))
195 (setq last-command-char terminal-escape-char)
196 (let ((terminal-escape-char -259))
197 (te-pass-through)))
198
199 ((setq s (lookup-key terminal-escape-map s))
200 (call-interactively s)))
201
202 ))
203
191 204
192(defun te-escape-help () 205(defun te-escape-help ()
193 "Provide help on commands available after terminal-escape-char is typed." 206 "Provide help on commands available after terminal-escape-char is typed."