aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vterm-module.c4
-rw-r--r--vterm.el15
2 files changed, 17 insertions, 2 deletions
diff --git a/vterm-module.c b/vterm-module.c
index edf8237..6ad3a6f 100644
--- a/vterm-module.c
+++ b/vterm-module.c
@@ -540,6 +540,10 @@ static void term_process_key(Term *term, unsigned char *key, size_t len,
} else {
vterm_keyboard_key(term->vt, VTERM_KEY_ENTER, modifier);
}
+ } else if (is_key(key, len, "<start>")) {
+ tcflow(term->pty_fd, TCOON);
+ } else if (is_key(key, len, "<stop>")) {
+ tcflow(term->pty_fd, TCOOFF);
} else if (is_key(key, len, "<start_paste>")) {
vterm_keyboard_start_paste(term->vt);
} else if (is_key(key, len, "<end_paste>")) {
diff --git a/vterm.el b/vterm.el
index da80143..70a4a8b 100644
--- a/vterm.el
+++ b/vterm.el
@@ -288,9 +288,9 @@ If nil, never delay")
(if vterm-copy-mode
(progn ;enable vterm-copy-mode
(use-local-map nil)
- (vterm-send-key "s" nil nil t))
+ (vterm-send-stop))
(use-local-map vterm-mode-map)
- (vterm-send-key "q" nil nil t)))
+ (vterm-send-start)))
(defun vterm--self-insert ()
"Sends invoking key to libvterm."
@@ -312,6 +312,17 @@ If nil, never delay")
(setq key (upcase key)))
(vterm--update vterm--term key shift meta ctrl))))
+(defun vterm-send-start ()
+ "Output from the system is started when the system receives START."
+ (interactive)
+ (vterm-send-key "<start>"))
+
+(defun vterm-send-stop ()
+ "Output from the system is stopped when the system receives STOP."
+ (interactive)
+ (vterm-send-key "<stop>"))
+
+
(defun vterm-send-ctrl-c ()
"Sends `C-c' to the libvterm."
(interactive)