diff options
-rw-r--r-- | tools/idevicebackup4.c | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/tools/idevicebackup4.c b/tools/idevicebackup4.c index fa00713..4e079f1 100644 --- a/tools/idevicebackup4.c +++ b/tools/idevicebackup4.c @@ -764,9 +764,11 @@ static void do_post_notification(const char *notification) } } -static void print_progress(double progress) +static void print_progress(uint64_t current, uint64_t total) { + gchar *format_size = NULL; int i = 0; + double progress = ((double)current/(double)total)*100; if (progress < 0) return; @@ -782,6 +784,14 @@ static void print_progress(double progress) } } printf("] %3.0f%%", progress); + + format_size = g_format_size_for_display(current); + printf(" (%s", format_size); + g_free(format_size); + format_size = g_format_size_for_display(total); + printf("/%s)", format_size); + g_free(format_size); + fflush(stdout); if (progress == 100) printf("\n"); @@ -1001,9 +1011,7 @@ static int handle_receive_files(plist_t message, const char *backup_dir) plist_get_uint_val(node, &backup_total_size); } if (backup_total_size > 0) { - gchar *format_size = g_format_size_for_display(backup_total_size); - printf("Receiving backup data (%s)\n", format_size); - g_free(format_size); + printf("Receiving backup data\n"); } do { @@ -1067,6 +1075,9 @@ static int handle_receive_files(plist_t message, const char *backup_dir) if (bdone == blocksize) { backup_real_size += blocksize; } + if (backup_total_size > 0) { + print_progress(backup_real_size, backup_total_size); + } if (quit_flag) break; nlen = 0; @@ -1082,7 +1093,7 @@ static int handle_receive_files(plist_t message, const char *backup_dir) file_count++; if (backup_total_size > 0) - print_progress(((double)backup_real_size/(double)backup_total_size)*100); + print_progress(backup_real_size, backup_total_size); if (nlen == 0) { break; } |