diff options
| author | Karl Heuer | 1995-09-21 20:54:35 +0000 |
|---|---|---|
| committer | Karl Heuer | 1995-09-21 20:54:35 +0000 |
| commit | be934b539dc69df4952e66e1e52b27ca5acade9d (patch) | |
| tree | b178929fc220828d4e9a27daeb54cdbef7c6d9fb | |
| parent | 8e183d5bf28232279728b6687185134d2bf22580 (diff) | |
| download | emacs-be934b539dc69df4952e66e1e52b27ca5acade9d.tar.gz emacs-be934b539dc69df4952e66e1e52b27ca5acade9d.zip | |
(te-escape, te-escape-help): Handle non-ASCII events.
| -rw-r--r-- | lisp/terminal.el | 45 |
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." |