summaryrefslogtreecommitdiff
path: root/lisp/flow-ctrl.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/flow-ctrl.el')
-rw-r--r--lisp/flow-ctrl.el14
1 files changed, 9 insertions, 5 deletions
diff --git a/lisp/flow-ctrl.el b/lisp/flow-ctrl.el
index 68d5165dc45..4d3d68f49be 100644
--- a/lisp/flow-ctrl.el
+++ b/lisp/flow-ctrl.el
@@ -37,8 +37,7 @@
;;; won't work outside of UNIX-like environments.
(defun evade-flow-control ()
- "Replace C-s with C-\ and C-q with C-^ and tell emacs to pass C-s
-and C-q characters to OS."
+ "Enable use of flow control; let user type C-s as C-\ and C-q as C-^."
(interactive)
;; Tell emacs to pass C-s and C-q to OS.
(set-input-mode nil t)
@@ -65,19 +64,24 @@ and C-q characters to OS."
": use C-\\ for C-s and use C-^ for C-q."))
(sleep-for 2)) ; Give user a chance to see message.
-(defun memstr= (e s)
+(defun evade-flow-control-memstr= (e s)
(cond ((null s) nil)
((string= e (car s)) t)
- (t (memstr= e (cdr s)))))
+ (t (evade-flow-control-memstr= e (cdr s)))))
;;;###autoload
(defun evade-flow-control-on (&rest losing-terminal-types)
+ "Enable flow control if using one of a specified set of terminal types.
+Use `(evade-flow-control-on "vt100" "h19")' to enable flow control
+on VT-100 and H19 terminals. When flow control is enabled,
+you must type C-\ to get the effect of a C-s, and type C-^
+to get the effect of a C-q."
(let ((term (getenv "TERM"))
hyphend)
;; Strip off hyphen and what follows
(while (setq hyphend (string-match "[-_][^-_]+$" term))
(setq term (substring term 0 hyphend)))
- (and (memstr= term losing-terminal-types) (evade-flow-control)))
+ (and (evade-flow-control-memstr= term losing-terminal-types) (evade-flow-control)))
)
(provide 'flow-ctrl)