output in more circumstances.
extern int io_error;
extern int keep_partial;
extern int got_xfer_error;
-extern int progress_is_active;
extern char *partial_dir;
extern char *logfile_name;
exit_code = unmodified_code = code;
- if (progress_is_active && exit_code && !am_server)
- rprintf(FINFO, "\n");
-
if (verbose > 3) {
rprintf(FINFO,
"_exit_cleanup(code=%d, file=%s, line=%d): entered\n",
extern int preserve_times;
extern int uid_ndx;
extern int gid_ndx;
+extern int progress_is_active;
extern int stdout_format_has_i;
extern int stdout_format_has_o_or_i;
extern int logfile_format_has_i;
exit_cleanup(RERR_MESSAGEIO);
}
+ if (progress_is_active && !am_server) {
+ fputc('\n', f);
+ progress_is_active = 0;
+ }
+
trailing_CR_or_NL = len && (buf[len-1] == '\n' || buf[len-1] == '\r')
? buf[--len] : 0;
stats.num_transferred_files,
stats.num_files - current_file_index - 1,
stats.num_files);
- progress_is_active = 0;
- } else {
+ } else
strlcpy(eol, "\r", sizeof eol);
- progress_is_active = 1;
- }
+ 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;
}
void set_current_file_index(struct file_struct *file, int ndx)