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;
{ RERR_SIGNAL , "received SIGINT, SIGTERM, or SIGHUP" },
{ RERR_WAITCHILD , "waitpid() failed" },
{ RERR_MALLOC , "error allocating core memory buffers" },
- { RERR_PARTIAL , "some files could not be transferred" },
+ { RERR_PARTIAL , "some files/attrs were not transferred (see previous errors)" },
{ RERR_VANISHED , "some files vanished before they could be transferred" },
{ RERR_TIMEOUT , "timeout in data send/receive" },
{ RERR_CONTIMEOUT , "timeout waiting for daemon connection" },
if (am_server && msg_fd_out >= 0) {
assert(!is_utf8);
- /* Pass the message to our sibling. */
+ /* Pass the message to our sibling in native charset. */
send_msg((enum msgcode)code, buf, len, 0);
return;
}
if (code == FERROR_SOCKET) /* This gets simplified for a non-sibling. */
code = FERROR;
+ else if (code == FERROR_UTF8) {
+ is_utf8 = 1;
+ code = FERROR;
+ }
if (code == FCLIENT)
code = FINFO;
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;