Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.2 9/18/84; site cornell.UUCP
Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!mhuxt!houxm!vax135!cornell!jqj
From: jqj@cornell.UUCP (J Q Johnson)
Newsgroups: net.emacs
Subject: Re: flow control
Message-ID: <529@cornell.UUCP>
Date: Fri, 8-Nov-85 08:34:19 EST
Article-I.D.: cornell.529
Posted: Fri Nov  8 08:34:19 1985
Date-Received: Sun, 10-Nov-85 08:18:45 EST
References: <1133@ulysses.UUCP>
Reply-To: jqj@cornell.UUCP (J Q Johnson)
Organization: Cornell Univ. CS Dept.
Lines: 29
Summary: 

We've beaten this topic to death, and it doesn't belong on net.emacs anyway.
Let's at least move the discussion to net.dcom or something!

To summarize:
	1/ many people don't like XON/XOFF flow control.  In particular,
most versions of Emacs, since they traditionally use C-s and C-q as important
commands, work MUCH better in a non-flowcontrolled environment.
	2/ it is possible in most cases to substitute padding for XON/XOFF.
However, padding calculations can be VERY complex.  One generally doesn't want
to pad for the worst case; on a VT100 at 19.2Kb, this would be a pad after
every single character!  Also, padding is a problem with terminal emulators,
since my emulated VT100 (a VT101 is one such emulator) may have very different 
padding requirements from a real one.
	3/ doing padding requires that the program know a great deal about
the terminal and about display processing.  At the very least it needs to
know the output baud rate (which is not always available over network
connections), and the precise terminal type.  Now that it is becomming common
to put a windowing system between the program and a "virtual" terminal, it
becomes necessary either for the program to know about the characteristics
of that windowing system or for the windowing system to be sufficiently
fast to handle any incoming data rate.
	4/ padding uses up bandwidth, which can sometimes be too costly
(e.g. if you are paying Tymnet a percharacter charge).  Using timed
delays, however, does not work since downstream buffering can completely
foul up your timing.
	5/ in some environments flowcontrol cannot be disabled.  For example,
some "intelligent" front ends insist on processing ^S/^Q.  In such situations,
your ONLY option is to use a flow-controlled version of Emacs.  Current
GNU Emacs has such an option, as do some versions of Gosling Emacs.