[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] stty: document the 'discard' character setting
From: |
Pádraig Brady |
Subject: |
[PATCH] stty: document the 'discard' character setting |
Date: |
Fri, 23 Jan 2015 01:09:56 +0000 |
The equivalent of this is 'flush', but that was never documented
as an option (though was output with stty -a). Therefore use
the more descriptive name, also generally used on BSD systems.
Note even though this setting seems ineffective on Linux, supporting
the setting is useful to allow terminal programs to receive
the default ^O character code.
* doc/coreutils.texi (stty invocation): Document the 'discard' option.
* src/stty.c (struct control_info): Add 'discard'; same as 'flush'.
(display_all): Show 'discard' rather than 'flush' char.
(display_changed): Likewise.
(usage): Document the 'discard' option.
---
doc/coreutils.texi | 5 +++++
src/stty.c | 19 ++++++++++++++++++-
2 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/doc/coreutils.texi b/doc/coreutils.texi
index f840940..078bca3 100644
--- a/doc/coreutils.texi
+++ b/doc/coreutils.texi
@@ -14438,6 +14438,11 @@ End the line.
@opindex eol2
Alternate character to end the line. Non-POSIX.
+@item discard
+@opindex discard
+@opindex flush
+Alternate character to toggle discarding of output. Non-POSIX.
+
@item swtch
@opindex swtch
Switch to a different shell layer. Non-POSIX.
diff --git a/src/stty.c b/src/stty.c
index bac2839..37a6b27 100644
--- a/src/stty.c
+++ b/src/stty.c
@@ -417,7 +417,8 @@ static struct control_info const control_info[] =
{"lnext", CLNEXT, VLNEXT},
#endif
#ifdef VFLUSHO
- {"flush", CFLUSHO, VFLUSHO},
+ {"flush", CFLUSHO, VFLUSHO}, /* deprecated compat option. */
+ {"discard", CFLUSHO, VFLUSHO},
#endif
#ifdef VSTATUS
{"status", CSTATUS, VSTATUS},
@@ -568,6 +569,11 @@ Special characters:\n"), stdout);
* lnext CHAR CHAR will enter the next character quoted\n\
"), stdout);
#endif
+#ifdef VFLUSHO
+ fputs (_("\
+ * discard CHAR CHAR will toggle discarding of output\n\
+"), stdout);
+#endif
fputs (_("\
quit CHAR CHAR will send a quit signal\n\
"), stdout);
@@ -1697,6 +1703,12 @@ display_changed (struct termios *mode)
{
if (mode->c_cc[control_info[i].offset] == control_info[i].saneval)
continue;
+
+#ifdef VFLUSHO
+ /* 'flush' is the deprecated equivalent of 'discard'. */
+ if (STREQ (control_info[i].name, "flush"))
+ continue;
+#endif
/* If swtch is the same as susp, don't print both. */
#if VSWTCH == VSUSP
if (STREQ (control_info[i].name, "swtch"))
@@ -1787,6 +1799,11 @@ display_all (struct termios *mode, char const
*device_name)
for (i = 0; ! STREQ (control_info[i].name, "min"); ++i)
{
+#ifdef VFLUSHO
+ /* 'flush' is the deprecated equivalent of 'discard'. */
+ if (STREQ (control_info[i].name, "flush"))
+ continue;
+#endif
/* If swtch is the same as susp, don't print both. */
#if VSWTCH == VSUSP
if (STREQ (control_info[i].name, "swtch"))
--
2.1.0