summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS1
-rw-r--r--doc/coreutils.texi7
-rw-r--r--src/stty.c4
-rwxr-xr-xtests/misc/stty.sh2
4 files changed, 13 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index f3af75c3e..51b7a82f0 100644
--- a/NEWS
+++ b/NEWS
@@ -90,6 +90,7 @@ GNU coreutils NEWS -*- outline -*-
stat and tail now know about CEPH. stat -f --format=%T now reports the file
system type, and tail -f uses polling for files on CEPH file systems.
+ stty now supports configuring DTR/DSR hardware flow control where available.
** Build-related
diff --git a/doc/coreutils.texi b/doc/coreutils.texi
index e248af0e2..faed80d61 100644
--- a/doc/coreutils.texi
+++ b/doc/coreutils.texi
@@ -13635,6 +13635,13 @@ Disable modem control signals. May be negated.
@cindex flow control, hardware
@cindex RTS/CTS flow control
Enable RTS/CTS flow control. Non-POSIX@. May be negated.
+
+@item cdtrdsr
+@opindex cdtrdsr
+@cindex hardware flow control
+@cindex flow control, hardware
+@cindex DTR/DSR flow control
+Enable DTR/DSR flow control. Non-POSIX@. May be negated.
@end table
diff --git a/src/stty.c b/src/stty.c
index fe0f22f8f..ee891a593 100644
--- a/src/stty.c
+++ b/src/stty.c
@@ -217,6 +217,9 @@ static struct mode_info const mode_info[] =
#ifdef CRTSCTS
{"crtscts", control, REV, CRTSCTS, 0},
#endif
+#ifdef CDTRDSR
+ {"cdtrdsr", control, REV, CDTRDSR, 0},
+#endif
{"ignbrk", input, SANE_UNSET | REV, IGNBRK, 0},
{"brkint", input, SANE_SET | REV, BRKINT, 0},
@@ -581,6 +584,7 @@ Control settings:\n\
[-]clocal disable modem control signals\n\
[-]cread allow input to be received\n\
* [-]crtscts enable RTS/CTS handshaking\n\
+ * [-]cdtrdsr enable DTR/DSR handshaking\n\
csN set character size to N bits, N in [5..8]\n\
"), stdout);
fputs (_("\
diff --git a/tests/misc/stty.sh b/tests/misc/stty.sh
index 0657a7472..2f9b9a3b8 100755
--- a/tests/misc/stty.sh
+++ b/tests/misc/stty.sh
@@ -52,7 +52,7 @@ for opt in $options; do
# other serial control settings give the same error. So skip them.
# Also on ppc*|sparc* glibc platforms 'icanon' gives the same error.
# See: http://debbugs.gnu.org/7228#14
- case $opt in parenb|parodd|cstopb|crtscts|icanon) continue;; esac
+ case $opt in parenb|parodd|cstopb|crtscts|cdtrdsr|icanon) continue;; esac
stty $opt || fail=1