Changed human_num() to big_num() with an extra arg so that it can
[rsync/rsync.git] / log.c
diff --git a/log.c b/log.c
index f486db0..2d828c1 100644 (file)
--- 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;