diff options
author | Gerd Moellmann <gerd@gnu.org> | 2000-07-12 18:25:40 +0000 |
---|---|---|
committer | Gerd Moellmann <gerd@gnu.org> | 2000-07-12 18:25:40 +0000 |
commit | 4bf4fb05c2bd126436050d00c615b28223bbc99c (patch) | |
tree | 6eaae0f837dd860e1f6f9285ad9a1622174cdd5b /lisp/term.el | |
parent | 37328bcd5373c916e86ea1c8e4435ddf09ba6e92 (diff) | |
download | emacs-4bf4fb05c2bd126436050d00c615b28223bbc99c.tar.gz |
(term-send-raw-meta): Strip modifiers from the keyboard
event when deciding what to send to the terminal.
Diffstat (limited to 'lisp/term.el')
-rw-r--r-- | lisp/term.el | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/lisp/term.el b/lisp/term.el index d76db38ee4e..5f68c4f1713 100644 --- a/lisp/term.el +++ b/lisp/term.el @@ -1205,20 +1205,22 @@ without any interpretation." (defun term-send-raw-meta () (interactive) - (if (symbolp last-input-char) + (let ((char last-input-char)) + (when (symbolp last-input-char) ;; Convert `return' to C-m, etc. - (let ((tmp (get last-input-char 'event-symbol-elements))) - (if tmp - (setq last-input-char (car tmp))) - (if (symbolp last-input-char) - (progn - (setq tmp (get last-input-char 'ascii-character)) - (if tmp (setq last-input-char tmp)))))) - (term-send-raw-string (if (and (numberp last-input-char) - (> last-input-char 127) - (< last-input-char 256)) - (make-string 1 last-input-char) - (format "\e%c" last-input-char)))) + (let ((tmp (get char 'event-symbol-elements))) + (when tmp + (setq char (car tmp))) + (when (symbolp char) + (setq tmp (get char 'ascii-character)) + (when tmp + (setq char tmp))))) + (setq char (event-basic-type char)) + (term-send-raw-string (if (and (numberp char) + (> char 127) + (< char 256)) + (make-string 1 char) + (format "\e%c" char))))) (defun term-mouse-paste (click arg) "Insert the last stretch of killed text at the position clicked on." |