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:
parent
8f93191f26
commit
c77a16309f
@ -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
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user