Changed RERR_CRASH to RERR_CRASHED.
[rsync/rsync.git] / log.c
diff --git a/log.c b/log.c
index 77ac19c..b03fc08 100644 (file)
--- a/log.c
+++ b/log.c
@@ -65,6 +65,8 @@ struct {
        { RERR_STREAMIO   , "error in rsync protocol data stream" },
        { RERR_MESSAGEIO  , "errors with program diagnostics" },
        { RERR_IPC        , "error in IPC code" },
+       { RERR_CRASHED    , "sibling process crashed" },
+       { RERR_TERMINATED , "sibling process terminated abnormally" },
        { RERR_SIGNAL     , "received SIGUSR1 or SIGINT" },
        { RERR_WAITCHILD  , "some error returned by waitpid()" },
        { RERR_MALLOC     , "error allocating core memory buffers" },
@@ -512,7 +514,7 @@ static void log_formatted(enum logcode code, char *format, char *op,
                                int i;
                                for (i = 2; n[i]; i++)
                                        n[i] = ch;
-                       } else if (!(iflags & (ITEM_TRANSFER|ITEM_LOCAL_CHANGE))) {
+                       } else if (n[0] == '.' || n[0] == 'h') {
                                int i;
                                for (i = 2; n[i]; i++) {
                                        if (n[i] != '.')
@@ -602,12 +604,15 @@ void log_item(struct file_struct *file, struct stats *initial_stats,
 void maybe_log_item(struct file_struct *file, int iflags, int itemizing,
                    char *buf)
 {
-       int see_item = itemizing && (iflags || verbose > 1);
+       int significant_flags = iflags & SIGNIFICANT_ITEM_FLAGS;
+       int see_item = itemizing && (significant_flags || *buf || verbose > 1);
+       int local_change = iflags & ITEM_LOCAL_CHANGE
+           && (!(iflags & ITEM_XNAME_FOLLOWS) || significant_flags);
        if (am_server) {
                if (am_daemon && !dry_run && see_item)
                        log_item(file, &stats, iflags, buf);
-       } else if (see_item || iflags & ITEM_LOCAL_CHANGE || *buf
-           || (S_ISDIR(file->mode) && iflags & SIGNIFICANT_ITEM_FLAGS))
+       } else if (see_item || local_change || *buf
+           || (S_ISDIR(file->mode) && significant_flags))
                log_item(file, &stats, iflags, buf);
 }