From: Wayne Davison Date: Sun, 27 Jun 2021 17:16:28 +0000 (-0700) Subject: Need to also check stdout_format_has_i in some INFO-NAME checks. X-Git-Tag: v3.2.4pre1~81 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e8e34ed6fb576bb734e81d73749cd391d9cc5860;p=thirdparty%2Frsync.git Need to also check stdout_format_has_i in some INFO-NAME checks. --- diff --git a/main.c b/main.c index 15303e5d..361dbc4e 100644 --- a/main.c +++ b/main.c @@ -87,6 +87,7 @@ extern BOOL shutting_down; extern int backup_dir_len; extern int basis_dir_cnt; extern int default_af_hint; +extern int stdout_format_has_i; extern struct stats stats; extern char *stdout_format; extern char *logfile_format; @@ -725,7 +726,7 @@ static char *get_local_name(struct file_list *flist, char *dest_path) int ret = make_path(dest_path, file_total > 1 && !trailing_slash ? 0 : MKP_DROP_NAME); if (ret < 0) goto mkdir_error; - if (ret && INFO_GTE(NAME, 1)) { + if (ret && (INFO_GTE(NAME, 1) || stdout_format_has_i)) { if (file_total == 1 || trailing_slash) *cp = '\0'; rprintf(FINFO, "created %d director%s for %s\n", ret, ret == 1 ? "y" : "ies", dest_path); @@ -791,7 +792,7 @@ static char *get_local_name(struct file_list *flist, char *dest_path) && strcmp(flist->files[flist->low]->basename, ".") == 0) flist->files[0]->flags |= FLAG_DIR_CREATED; - if (INFO_GTE(NAME, 1)) + if (INFO_GTE(NAME, 1) || stdout_format_has_i) rprintf(FINFO, "created directory %s\n", dest_path); if (dry_run) { diff --git a/receiver.c b/receiver.c index 9df603fe..9c47ece3 100644 --- a/receiver.c +++ b/receiver.c @@ -912,7 +912,7 @@ int recv_files(int f_in, int f_out, char *local_name) break; case 0: { enum logcode msgtype = redoing ? FERROR_XFER : FWARNING; - if (msgtype == FERROR_XFER || INFO_GTE(NAME, 1)) { + if (msgtype == FERROR_XFER || INFO_GTE(NAME, 1) || stdout_format_has_i) { char *errstr, *redostr, *keptstr; if (!(keep_partial && partialptr) && !inplace) keptstr = "discarded"; diff --git a/testsuite/devices.test b/testsuite/devices.test index 79dfdf17..63d737c9 100644 --- a/testsuite/devices.test +++ b/testsuite/devices.test @@ -154,6 +154,7 @@ diff $diffopt "$tmpdir/ls-from" "$tmpdir/ls-to" if test "$CAN_HLINK_SPECIAL" = yes; then set -x checkdiff "$RSYNC -aii --link-dest='$todir' '$fromdir/' '$chkdir/'" <"$chkfile" +created directory $to2dir hf$allspace foo/extra => foo/config1 EOT checkdiff2 "$RSYNC -iplrtH --copy-dest=../to '$fromdir/' '$to2dir/'" @@ -184,10 +186,13 @@ $L$sym_dots foo/sym -> ../bar/baz/rsync EOT rm -rf "$to2dir" -checkdiff "$RSYNC -iplrtH --dry-run --link-dest=../to '$fromdir/' '$to2dir/'" <"$chkfile.extra" +cat - "$chkfile.extra" <"$chkfile" +created directory $to2dir +EOT +checkdiff2 "$RSYNC -iplrtH --dry-run --link-dest=../to '$fromdir/' '$to2dir/'" rm -rf "$to2dir" -checkdiff "$RSYNC -iplrtH --link-dest=../to '$fromdir/' '$to2dir/'" <"$chkfile.extra" +checkdiff2 "$RSYNC -iplrtH --link-dest=../to '$fromdir/' '$to2dir/'" rm -rf "$to2dir" checkdiff "$RSYNC -vvplrtH --link-dest='$todir' '$fromdir/' '$to2dir/'" \ @@ -218,7 +223,10 @@ $L_sym_dots foo/sym -> ../bar/baz/rsync EOT rm -rf "$to2dir" -checkdiff "$RSYNC -iplrtH --compare-dest='$todir' '$fromdir/' '$to2dir/'" <"$chkfile.extra" +cat - "$chkfile.extra" <"$chkfile" +created directory $to2dir +EOT +checkdiff2 "$RSYNC -iplrtH --compare-dest='$todir' '$fromdir/' '$to2dir/'" rm -rf "$to2dir" checkdiff "$RSYNC -vvplrtH --compare-dest='$todir' '$fromdir/' '$to2dir/'" \