X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/f2681d42ff564ec2d000383ee5c5f43cc3f283d8..6d56efa6ea66afa2e6f4eb79d9dd5f3b54b723c3:/log.c diff --git a/log.c b/log.c index f486db0d..2d828c13 100644 --- a/log.c +++ b/log.c @@ -22,7 +22,6 @@ #include "rsync.h" #include "ifuncs.h" -extern int verbose; extern int dry_run; extern int am_daemon; extern int am_server; @@ -63,6 +62,7 @@ static FILE *logfile_fp; struct stats stats; int got_xfer_error = 0; +int output_needs_newline = 0; struct { int code; @@ -320,9 +320,20 @@ void rwrite(enum logcode code, const char *buf, int len, int is_utf8) exit_cleanup(RERR_MESSAGEIO); } + if (output_needs_newline) { + fputc('\n', f); + output_needs_newline = 0; + } + trailing_CR_or_NL = len && (buf[len-1] == '\n' || buf[len-1] == '\r') ? buf[--len] : 0; + if (len && buf[0] == '\r') { + fputc('\r', f); + buf++; + len--; + } + #ifdef ICONV_CONST if (ic != (iconv_t)-1) { xbuf outbuf, inbuf; @@ -433,7 +444,7 @@ void rflush(enum logcode code) if (am_daemon || code == FLOG) return; - if (code == FINFO && !am_server) + if (!am_server && (code == FINFO || code == FCLIENT)) f = stdout; else f = stderr; @@ -755,7 +766,7 @@ void maybe_log_item(struct file_struct *file, int iflags, int itemizing, { int significant_flags = iflags & SIGNIFICANT_ITEM_FLAGS; int see_item = itemizing && (significant_flags || *buf - || stdout_format_has_i > 1 || (verbose > 1 && stdout_format_has_i)); + || stdout_format_has_i > 1 || (INFO_GTE(NAME, 2) && stdout_format_has_i)); int local_change = iflags & ITEM_LOCAL_CHANGE && significant_flags; if (am_server) { if (logfile_name && !dry_run && see_item @@ -779,7 +790,7 @@ void log_delete(const char *fname, int mode) x.file.mode = mode; - if (!verbose && !stdout_format) + if (!INFO_GTE(DEL, 1) && !stdout_format) ; else if (am_server && protocol_version >= 29 && len < MAXPATHLEN) { if (S_ISDIR(mode)) @@ -807,10 +818,10 @@ void log_delete(const char *fname, int mode) void log_exit(int code, const char *file, int line) { if (code == 0) { - rprintf(FLOG,"sent %.0f bytes received %.0f bytes total size %.0f\n", - (double)stats.total_written, - (double)stats.total_read, - (double)stats.total_size); + rprintf(FLOG,"sent %s bytes received %s bytes total size %s\n", + big_num(stats.total_written, 0), + big_num(stats.total_read, 0), + big_num(stats.total_size, 0)); } else if (am_server != 2) { const char *name;