# HG changeset patch # User Karl Heuer # Date 811716875 0 # Node ID 5c78211aa9e0572190a93d6e648c008f3ec0391b # Parent c1ce3b4556f21931af325330928e227f98c048de (te-escape, te-escape-help): Handle non-ASCII events. diff -r c1ce3b4556f2 -r 5c78211aa9e0 lisp/terminal.el --- a/lisp/terminal.el Thu Sep 21 20:21:16 1995 +0000 +++ b/lisp/terminal.el Thu Sep 21 20:54:35 1995 +0000 @@ -168,26 +168,39 @@ (defun te-escape () (interactive) (let (s - (local (current-local-map)) - (global (current-global-map))) + (local ((defun te-escape () + (interactive) + (let (s + (local (current-local-map)) + (global (current-global-map))) (unwind-protect - (progn - (use-global-map terminal-escape-map) - (use-local-map terminal-escape-map) - (setq s (read-key-sequence - (if current-prefix-arg - (format "Emacs Terminal escape> %d " - (prefix-numeric-value current-prefix-arg)) - "Emacs Terminal escape> ")))) + (progn + (use-global-map terminal-escape-map) + (use-local-map terminal-escape-map) + (setq s (read-key-sequence + (if current-prefix-arg + (format "Emacs Terminal escape> %d " + (prefix-numeric-value current-prefix-arg)) + "Emacs Terminal escape> ")))) (use-global-map global) (use-local-map local)) + (message "") - (cond ((string= s (make-string 1 terminal-escape-char)) - (setq last-command-char terminal-escape-char) - (let ((terminal-escape-char -259)) - (te-pass-through))) - ((setq s (lookup-key terminal-escape-map s)) - (call-interactively s))))) + + (cond + ;; Certain keys give vector notation, like [escape] when + ;; you hit esc key... + ((and (stringp s) + (string= s (make-string 1 terminal-escape-char))) + (setq last-command-char terminal-escape-char) + (let ((terminal-escape-char -259)) + (te-pass-through))) + + ((setq s (lookup-key terminal-escape-map s)) + (call-interactively s))) + + )) + (defun te-escape-help () "Provide help on commands available after terminal-escape-char is typed."