tools: kwboot: Fix printing progress

Ensure that `pos` is still in range up to the `width` so printing 100%
works also for bigger images. After printing 100% progress reset it to
zero, so that next progressbar can be started.

Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Stefan Roese <sr@denx.de>
This commit is contained in:
Pali Rohár 2021-09-24 23:06:46 +02:00 committed by Stefan Roese
parent d8cc851dd1
commit 5a1f8cbe86

View File

@ -140,12 +140,14 @@ __progress(int pct, char c)
fputc(c, stdout);
nl = "]\n";
pos++;
pos = (pos + 1) % width;
if (pct == 100) {
while (pos++ < width)
while (pos && pos++ < width)
fputc(' ', stdout);
fputs(nl, stdout);
nl = "";
pos = 0;
}
fflush(stdout);
@ -162,6 +164,9 @@ kwboot_progress(int _pct, char c)
if (kwboot_verbose)
__progress(pct, c);
if (pct == 100)
pct = 0;
}
static int