From adfde93f2457a1132cd8a5d5b6cda7d0cb88d327 Mon Sep 17 00:00:00 2001 From: dtucker Date: Tue, 9 Dec 2003 08:07:13 +0000 Subject: [PATCH] - markus@cvs.openbsd.org 2003/12/02 12:15:10 [progressmeter.c] improvments from andreas@: * saner speed estimate for transfers that takes less than a second by rounding the time to 1 second. * when the transfer is finished calculate the actual total speed rather than the current speed which is given during the transfer --- ChangeLog | 7 +++++++ progressmeter.c | 10 +++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index e0f2dc8b..1b3af8ae 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,6 +7,13 @@ [cipher-aes.c] fix #ifdef before #define; ok markus@ (RCS ID sync only, Portable already had this) + - markus@cvs.openbsd.org 2003/12/02 12:15:10 + [progressmeter.c] + improvments from andreas@: + * saner speed estimate for transfers that takes less than a second by + rounding the time to 1 second. + * when the transfer is finished calculate the actual total speed + rather than the current speed which is given during the transfer 20031208 - (tim) [configure.ac] Bug 770. Fix --without-rpath. diff --git a/progressmeter.c b/progressmeter.c index 39940bd9..7b76c959 100644 --- a/progressmeter.c +++ b/progressmeter.c @@ -23,7 +23,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: progressmeter.c,v 1.17 2003/11/20 11:39:28 markus Exp $"); +RCSID("$OpenBSD: progressmeter.c,v 1.18 2003/12/02 12:15:10 markus Exp $"); #include "progressmeter.h" #include "atomicio.h" @@ -120,14 +120,18 @@ refresh_progress_meter(void) if (bytes_left > 0) elapsed = now - last_update; - else + else { elapsed = now - start; + /* Calculate true total speed when done */ + transferred = end_pos; + bytes_per_second = 0; + } /* calculate speed */ if (elapsed != 0) cur_speed = (transferred / elapsed); else - cur_speed = 0; + cur_speed = transferred; #define AGE_FACTOR 0.9 if (bytes_per_second != 0) { -- 2.45.2