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:
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);
}