- if (is_last) {
- snprintf(eol, sizeof eol, " (xfer#%d, to-check=%d/%d)\n",
- stats.num_transferred_files,
- stats.num_files - current_file_index - 1,
- stats.num_files);
- } else
- strlcpy(eol, "\r", sizeof eol);
- progress_is_active = 0;
- rprintf(FCLIENT, "%12s %3d%% %7.2f%s %s%s",
- human_num(ofs), pct, rate, units, rembuf, eol);
- if (!is_last)
- progress_is_active = 1;
+ output_needs_newline = 0;
+ pct = ofs == size ? 100 : (int) (100.0 * ofs / size);
+ rprintf(FCLIENT, "\r%12s %3d%% %7.2f%s %s%s",
+ big_num(ofs, human_readable), pct, rate, units, rembuf, eol);
+ if (!is_last) {
+ output_needs_newline = 1;
+ rflush(FCLIENT);
+ }