1
0
mirror of https://github.com/moparisthebest/wget synced 2024-07-03 16:38:41 -04:00

[svn] Don't allow initial_length to exceed total_length.

Published in <sxssn62dq99.fsf@florida.arsdigita.de>.
This commit is contained in:
hniksic 2002-04-11 11:51:26 -07:00
parent 8f93191f26
commit c77a16309f
2 changed files with 17 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2002-04-11 Hrvoje Niksic <hniksic@arsdigita.com>
* progress.c (bar_create): If INITIAL is larger than TOTAL, fix
TOTAL.
(bar_finish): Likewise.
2002-04-11 Hrvoje Niksic <hniksic@arsdigita.com> 2002-04-11 Hrvoje Niksic <hniksic@arsdigita.com>
* html-url.c (tag_handle_form): New function. Pick up form * html-url.c (tag_handle_form): New function. Pick up form

View File

@ -461,6 +461,11 @@ bar_create (long initial, long total)
memset (bp, 0, sizeof (*bp)); memset (bp, 0, sizeof (*bp));
/* In theory, our callers should take care of this pathological
case, but it can sometimes happen. */
if (initial > total)
total = initial;
bp->initial_length = initial; bp->initial_length = initial;
bp->total_length = total; bp->total_length = total;
@ -493,7 +498,7 @@ bar_update (void *progress, long howmuch, long dltime)
adjust bp->total_length to the new reality, so that the code in adjust bp->total_length to the new reality, so that the code in
create_image() that depends on total size being smaller or create_image() that depends on total size being smaller or
equal to the expected size doesn't abort. */ equal to the expected size doesn't abort. */
bp->total_length = bp->count + bp->initial_length; bp->total_length = bp->initial_length + bp->count;
/* This code attempts to determine the current download speed. We /* This code attempts to determine the current download speed. We
measure the speed over the interval of approximately three measure the speed over the interval of approximately three
@ -565,6 +570,11 @@ bar_finish (void *progress, long dltime)
{ {
struct bar_progress *bp = progress; struct bar_progress *bp = progress;
if (bp->total_length > 0
&& bp->count + bp->initial_length > bp->total_length)
/* See bar_update() for explanation. */
bp->total_length = bp->initial_length + bp->count;
create_image (bp, dltime); create_image (bp, dltime);
display_image (bp->buffer); display_image (bp->buffer);