coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] stty: fix off by one column wrapping on output


From: Pádraig Brady
Subject: [PATCH] stty: fix off by one column wrapping on output
Date: Sat, 31 Dec 2022 17:08:54 +0000

* src/stty.c (wrapf): Adjust the comparison by 1,
to account for the space we're adding.
* tests/misc/stty.sh: Add a test case.
* NEWS: Mention the fix.
Reported in https://bugs.debian.org/1027442
---
 NEWS               | 4 ++++
 src/stty.c         | 2 +-
 tests/misc/stty.sh | 5 +++++
 3 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/NEWS b/NEWS
index 0beaef506..6b05c8d35 100644
--- a/NEWS
+++ b/NEWS
@@ -32,6 +32,10 @@ GNU coreutils NEWS                                    -*- 
outline -*-
   and the system supported set of valid speeds.
   [This bug was present in "the beginning".]
 
+  stty now wraps output appropriately for the terminal width.
+  Previously it may have output 1 character too wide for certain widths.
+  [bug introduced in coreutils-5.3]
+
   `wc -c` will again efficiently determine the size of large files
   on all systems.  It no longer redundantly reads data from certain
   sized files larger than SIZE_MAX.
diff --git a/src/stty.c b/src/stty.c
index b4c2cbecd..f3c7915e1 100644
--- a/src/stty.c
+++ b/src/stty.c
@@ -519,7 +519,7 @@ wrapf (char const *message,...)
 
   if (0 < current_col)
     {
-      if (max_col - current_col < buflen)
+      if (max_col - current_col <= buflen)
         {
           putchar ('\n');
           current_col = 0;
diff --git a/tests/misc/stty.sh b/tests/misc/stty.sh
index bcdc80e87..0347f6fda 100755
--- a/tests/misc/stty.sh
+++ b/tests/misc/stty.sh
@@ -89,4 +89,9 @@ returns_ 1 strace -o log2 -e ioctl stty -blahblah || fail=1
 n_ioctl2=$(wc -l < log2) || framework_failure_
 test "$n_ioctl1" = "$n_ioctl2" || fail=1
 
+# Ensure we wrap output appropriately
+for C in $(seq 80 90); do
+  test $(COLUMNS=$C stty -a | wc -L) -le $C || fail=1
+done
+
 Exit $fail
-- 
2.26.2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]