summaryrefslogtreecommitdiff
path: root/lisp/term.el
diff options
context:
space:
mode:
authorGerd Moellmann <gerd@gnu.org>2000-07-12 18:25:40 +0000
committerGerd Moellmann <gerd@gnu.org>2000-07-12 18:25:40 +0000
commit4bf4fb05c2bd126436050d00c615b28223bbc99c (patch)
tree6eaae0f837dd860e1f6f9285ad9a1622174cdd5b /lisp/term.el
parent37328bcd5373c916e86ea1c8e4435ddf09ba6e92 (diff)
downloademacs-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.el28
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."