Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
47f1218
)
Also estimate time remaining.
author
Martin Pool
<mbp@samba.org>
Sun, 2 Dec 2001 08:56:25 +0000
(08:56 +0000)
committer
Martin Pool
<mbp@samba.org>
Sun, 2 Dec 2001 08:56:25 +0000
(08:56 +0000)
util.c
patch
|
blob
|
blame
|
history
diff --git
a/util.c
b/util.c
index
3fd65f4
..
049d005
100644
(file)
--- a/
util.c
+++ b/
util.c
@@
-831,13
+831,12
@@
static unsigned long msdiff(struct timeval *t1, struct timeval *t2)
static void rprint_progress(OFF_T ofs, OFF_T size, struct timeval *now,
int is_last)
{
static void rprint_progress(OFF_T ofs, OFF_T size, struct timeval *now,
int is_last)
{
- int pct = (int)((100.0*ofs)/size);
+ int pct = (
ofs == size) ? 100 : (
int)((100.0*ofs)/size);
unsigned long diff = msdiff(&start_time, now);
double rate = diff ? ((ofs-start_ofs) / diff) * 1000.0/1024.0 : 0;
unsigned long diff = msdiff(&start_time, now);
double rate = diff ? ((ofs-start_ofs) / diff) * 1000.0/1024.0 : 0;
- const char *units;
+ const char *units, *rem_units;
+ double remain = pct ? ((100.0-pct) * diff / pct / 1000.0) : 0;
- if (ofs == size) pct = 100;
-
if (rate > 1024*1024) {
rate /= 1024.0 * 1024.0;
units = "GB/s";
if (rate > 1024*1024) {
rate /= 1024.0 * 1024.0;
units = "GB/s";
@@
-847,9
+846,20
@@
static void rprint_progress(OFF_T ofs, OFF_T size, struct timeval *now,
} else {
units = "kB/s";
}
} else {
units = "kB/s";
}
+
+ if (remain > 5*60*60) {
+ remain /= 60*60;
+ rem_units = "h";
+ } if (remain > 5*60) {
+ remain /= 60;
+ rem_units = "m";
+ } else {
+ rem_units = "s";
+ }
- rprintf(FINFO, "%12.0f %3d%% %7.2f%s%s",
+ rprintf(FINFO, "%12.0f %3d%% %7.2f%s
%5.0f%s
%s",
(double) ofs, pct, rate, units,
(double) ofs, pct, rate, units,
+ remain, rem_units,
is_last ? "\n" : "\r");
}
is_last ? "\n" : "\r");
}