On Wed, Jul 14 2021, Alex Henrie wrote: > On Wed, Jul 14, 2021 at 9:39 AM Ævar Arnfjörð Bjarmason > <avarab@xxxxxxxxx> wrote: >> >> >> On Wed, Jul 14 2021, Fabian Stelzer wrote: >> >> > Hi, >> > The test t0500-progress-display.sh in current master fails on latest >> > fedora34. >> > The break was introduced with: >> > >> > 83ae1edff7ee0b7674bd556955d2cf1706bddb21 >> > ab/fix-columns-to-80-during-tests (2021-06-29) 1 commit >> > >> > Kind regards, >> > Fabian >> >> I have not been able to reproduce this, it seems the below E-Mail was >> word-wrapped by your mailer, which is especially bad here since getting >> to the bottom of this requires looking at the whitespace. >> >> Is there a way you could tar that up and send it (to me personally is >> fine, or some pastebin or whatever). >> >> I am able to reproduce something that looks like this if I >> s/COLUMNS=80/COLUMNS=79/g in the test-lib, but given that we set it to >> 80, and that the progress.c code just ends up with an >> atoi(getenv("COLUMNS")), and we do our own wrapping (with no other fancy >> logic) in progress.c, I'm not seeing right now how this could happen... > > This test also fails for me when using QTerminal or Konsole, but it > passes on XTerm and LXTerminal. I tried this on Debian 11 with QTerminal 0.16.1 and can't reproduce it, resized the window etc., always get COLUMNS=80 if I add some printf debugging. Do you mind testing with an ad-hoc patch like this on top? It will fail right away, but should say COLUMNS = 80 in the output. The only thing I can think of right now is that some terminals are doing some evil trickery to LD_PRELOAD or whatever and intercept getenv() for COLUMNS and the like, but that's an entirely unfounded hunch. diff --git a/progress.c b/progress.c index 680c6a8bf9..dca254b515 100644 --- a/progress.c +++ b/progress.c @@ -144,6 +144,7 @@ static void display(struct progress *progress, uint64_t n, const char *done) size_t progress_line_len = progress->title_len + counters_sb->len + 2; int cols = term_columns(); + fprintf(stderr, "cols = %d\n", cols); if (progress->split) { fprintf(stderr, " %s%*s", counters_sb->buf,