Date: Tue, 12 Aug 2014 17:12:17 -0600 From: Warner Losh <imp@bsdimp.com> To: John Baldwin <jhb@FreeBSD.org> Cc: FreeBSD Stable <freebsd-stable@freebsd.org> Subject: Re: Support DISCARD (^O) Message-ID: <C2DEB4C5-8FB2-4CC0-9F87-2C927C92AE6C@bsdimp.com> In-Reply-To: <201408121644.18345.jhb@freebsd.org> References: <201408121644.18345.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
On Aug 12, 2014, at 2:44 PM, John Baldwin <jhb@FreeBSD.org> wrote:
>
> --
> John Baldwin
>
> From: Eivind Nicolay Evensen <eivinde@terraplane.org>
> Subject: Re: Support DISCARD (^O)
> Date: July 5, 2014 at 4:34:16 AM MDT
> To: freebsd-stable@freebsd.org
>
>
> On Tue, Dec 17, 2013 at 10:18:16PM +0100, Eivind Evensen wrote:
>> Hello.
>>
>> I don't know if there is any particular reason that support for DISCARD/^O
>> was not included in the tty rewrite that happened from FreeBSD 7 to 8,
>> but in case anybody else wants it, here's a diff functioning mostly
>> like in 7, except output isn't switched back on automatically on input.
>>
>> Diff is against FreeBSD 8, however, last time I checked I didn't see
>> much difference in the newer versions.
>
> Here's a diff against FreeBSD 10. It seems to work fine there too.
>
>
> diff -r 59ad9c4b7916 -r 6e500f4552b4 sys/kern/tty_ttydisc.c
> --- a/sys/kern/tty_ttydisc.c Fri Jul 04 17:27:59 2014 +0200
> +++ b/sys/kern/tty_ttydisc.c Fri Jul 04 17:29:29 2014 +0200
> @@ -464,6 +464,9 @@
> if (tp->t_flags & TF_ZOMBIE)
> return (EIO);
>
> + if (tp->t_termios.c_lflag & FLUSHO)
> + return (0);
> +
> /*
> * We don't need to check whether the process is the foreground
> * process group or if we have a carrier. This is already done
> @@ -896,6 +899,14 @@
>
> /* Special control characters that are implementation dependent. */
> if (CMP_FLAG(l, IEXTEN)) {
> + /* Discard (^O) */
> + if (CMP_CC(VDISCARD, c)) {
> + if (!(tp->t_termios.c_lflag & FLUSHO))
> + ttyoutq_write_nofrag(&tp->t_outq, "^O", 2);
> + tp->t_termios.c_lflag ^= FLUSHO;
> + return(0);
> + }
> +
DISCARD is supposed to turn back off after any character that you type, not just ^O again.
Warner
[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org
iQIcBAEBCgAGBQJT6p9RAAoJEGwc0Sh9sBEASYkP/0xhT0gQs8pGBz8NLQn1KLqX
x7yhDjmhruuWBejQfLtKR/xzxinriybYUjzgnq9p46TjU909QTvy8TuY2h1X6iDh
WFGeDxobraBdseaHNHrhoATizbJhXWe2ffoJX1ODou4aioL6hvyKpPXmpvv0qGes
SKcJBligeVJmlPSFXe5n1d4K9DbD9ljdbc2Z314VPaOEzwduigXkDV5ssQH3DGE5
9D8J8RlMhSz4PIFVPKMCH4wB3mk9YMIjeyxuC6uRbkbpUelF6+O07XeP5rWaPyzC
YbR4ljs6Jwp+wO9PAfzjdP4EhuEBQgOElDDznpm0u4H1R3Sh213pghW/yQ3Hoaux
HB44YikTtUiWctGfleLoFWV1y3stMXtt0njqxoRFHSPJ4TUuEe0W3AZoqSP5HBhm
iEb6jLKHECkGgKT6Wc/8EwApUKRUWzSCtnkgv6q5x18DB9NDMel2U/yZFF4+COFj
xStvWNMHAhTXAWwxSV5bXH9dFYknhgZ9iAzk5Iz2YPlxSs/SBQmTUHSeC/UkekSW
40Geo49LODSCSHfxZHn9D57qYO5FV5s7VB6jtVhzwL2GFDW73JNFtmWCQRMYOwUn
kIIaYtvP6rQBmaet/SH5rr9/N8spdQtejF2kYnajzF5f1k3hCyu5Jzu15v30vuOS
UwHpMWjpslOfgIBxbfog
=DOoy
-----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?C2DEB4C5-8FB2-4CC0-9F87-2C927C92AE6C>
