[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [PATCH] stty: fix off by one column wrapping on output,
Pádraig Brady <=