From 74c70b398058e5d57854d320d2920d145b842bbe Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Sun, 19 Feb 2012 15:28:31 +0100 Subject: copy_file: limit progress bar to sensible limits When copying in verbose mode from a tftp server we might not know the size of the file being transfered. In this case print one progress item per 16k instead of one for each single byte. Signed-off-by: Sascha Hauer --- lib/copy_file.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/copy_file.c b/lib/copy_file.c index 967806c3b0..484b2ca725 100644 --- a/lib/copy_file.c +++ b/lib/copy_file.c @@ -21,6 +21,7 @@ int copy_file(const char *src, const char *dst, int verbose) int ret = 1; void *buf; int total = 0; + struct stat statbuf; rw_buf = xmalloc(RW_BUF_SIZE); @@ -37,8 +38,6 @@ int copy_file(const char *src, const char *dst, int verbose) } if (verbose) { - struct stat statbuf; - if (stat(src, &statbuf) < 0) statbuf.st_size = 0; @@ -67,7 +66,7 @@ int copy_file(const char *src, const char *dst, int verbose) } if (verbose) - show_progress(total); + show_progress(statbuf.st_size ? total : total / 16384); } ret = 0; -- cgit v1.2.3