From 5377a9c3d16aefe4fc18025edb738676634c95f5 Mon Sep 17 00:00:00 2001 From: Michael Forney Date: Thu, 14 Jan 2021 21:41:59 -0800 Subject: [PATCH] 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. --- strings.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/strings.c b/strings.c index 76b3316..a99642e 100644 --- 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, ""); continue; } + rbuf[i++] = r; + if (i < len) + continue; printf(format, (long)off - i); for (i = 0; i < len; i++) efputrune(rbuf + i, stdout, ""); - efputrune(&r, stdout, ""); - i++; } free(rbuf); }