sbase

suckless unix tools
git clone git://git.suckless.org/sbase
Log | Files | Refs | README | LICENSE

commit 5377a9c3d16aefe4fc18025edb738676634c95f5
parent 3eb89c44aa788c1b122e7967f4a7a9a3b98322e9
Author: Michael Forney <mforney@mforney.org>
Date:   Thu, 14 Jan 2021 21:41:59 -0800

strings: Print strings that have the minimum length

Previously, there was an off-by-one error when determining whether
to print a strings, so when the string was exactly the minimum
length, it was not printed.

This fixes a bug with an x264 configure test, which expects to find
a string of length 4 (BIGE/EBIG) to detect system endianness.

Diffstat:
Mstrings.c | 12+++++-------
1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/strings.c b/strings.c @@ -23,23 +23,21 @@ strings(FILE *fp, const char *fname, size_t len) if (r == Runeerror) continue; if (!isprintrune(r)) { - if (i > len) + if (i == len) putchar('\n'); i = 0; continue; } - if (i < len) { - rbuf[i++] = r; - continue; - } else if (i > len) { + if (i == len) { efputrune(&r, stdout, "<stdout>"); continue; } + rbuf[i++] = r; + if (i < len) + continue; printf(format, (long)off - i); for (i = 0; i < len; i++) efputrune(rbuf + i, stdout, "<stdout>"); - efputrune(&r, stdout, "<stdout>"); - i++; } free(rbuf); }