int verbose = 0;
int quiet = 0;
-int itemize_changes = 0;
int log_before_transfer = 0;
int log_format_has_i = 0;
int log_format_has_o_or_i = 0;
static int daemon_opt; /* sets am_daemon after option error-reporting */
static int F_option_cnt = 0;
static int modify_window_set;
+static int itemize_changes = 0;
static int refused_delete, refused_archive_part;
static int refused_partial, refused_progress, refused_delete_before;
static char *max_size_arg;
rprintf(F," --bwlimit=KBPS limit I/O bandwidth; KBytes per second\n");
rprintf(F," --write-batch=FILE write a batched update to FILE\n");
rprintf(F," --read-batch=FILE read a batched update from FILE\n");
+ rprintf(F," --protocol=NUM force an older protocol version to be used\n");
#ifdef INET6
rprintf(F," -4, --ipv4 prefer IPv4\n");
rprintf(F," -6, --ipv6 prefer IPv6\n");
{"archive", 'a', POPT_ARG_NONE, &archive_mode, 0, 0, 0 },
{"server", 0, POPT_ARG_NONE, &am_server, 0, 0, 0 },
{"sender", 0, POPT_ARG_NONE, 0, OPT_SENDER, 0, 0 },
- {"recursive", 'r', POPT_ARG_VAL, &recurse, -1, 0, 0 },
+ {"recursive", 'r', POPT_ARG_NONE, &recurse, 0, 0, 0 },
{"list-only", 0, POPT_ARG_VAL, &list_only, 2, 0, 0 },
{"relative", 'R', POPT_ARG_VAL, &relative_paths, 1, 0, 0 },
{"no-relative", 0, POPT_ARG_VAL, &relative_paths, 0, 0, 0 },
return 0;
}
if (write_batch || read_batch) {
- if (dry_run) {
- snprintf(err_buf, sizeof err_buf,
- "--%s-batch cannot be used with --dry_run (-n)\n",
- write_batch ? "write" : "read");
- return 0;
- }
if (am_server) {
rprintf(FINFO,
"ignoring --%s-batch option sent to server\n",
* batch args to server. */
read_batch = write_batch = 0;
batch_name = NULL;
- }
+ } else if (dry_run)
+ write_batch = 0;
}
if (read_batch && files_from) {
snprintf(err_buf, sizeof err_buf,
return 0;
}
if (!files_from)
- recurse = -1; /* infinite recursion */
+ recurse = 1;
#ifdef SUPPORT_LINKS
preserve_links = 1;
#endif
omit_dir_times = 1;
if (log_format) {
- if (strstr(log_format, "%i") != NULL)
+ if (log_format_has(log_format, 'i'))
log_format_has_i = 1;
- if (strstr(log_format, "%b") == NULL
- && strstr(log_format, "%c") == NULL)
+ if (!log_format_has(log_format, 'b')
+ && !log_format_has(log_format, 'c'))
log_before_transfer = !am_server;
} else if (itemize_changes) {
log_format = "%i %n%L";
log_format = "%n%L";
log_before_transfer = !am_server;
}
- if (log_format_has_i
- || (log_format && strstr(log_format, "%o") != NULL))
+ if (log_format_has_i || log_format_has(log_format, 'o'))
log_format_has_o_or_i = 1;
if (daemon_bwlimit && (!bwlimit || bwlimit > daemon_bwlimit))
argstr[x++] = 'O';
if (preserve_perms)
argstr[x++] = 'p';
- if (recurse < 0)
+ if (recurse)
argstr[x++] = 'r';
if (always_checksum)
argstr[x++] = 'c';
/* This is a complete hack - blame Rusty. FIXME!
* This hack is only needed for older rsync versions that
* don't understand the --list-only option. */
- if (list_only == 1 && recurse >= 0)
+ if (list_only == 1 && !recurse)
argstr[x++] = 'r';
argstr[x] = 0;