X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/1de3e99bc5781a119c3c7a4aa176eb77a7039714..4313d6f9c00885f6921f5c90f8e52f715ebd81a9:/options.c diff --git a/options.c b/options.c index cb9bbafe..e6bc32b2 100644 --- a/options.c +++ b/options.c @@ -150,7 +150,6 @@ char *dest_option = NULL; 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; @@ -163,6 +162,7 @@ char *batch_name = NULL; 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; @@ -345,6 +345,7 @@ void usage(enum logcode F) 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"); @@ -415,7 +416,7 @@ static struct poptOption long_options[] = { {"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 }, @@ -901,12 +902,6 @@ int parse_arguments(int *argc, const char ***argv, int frommain) 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", @@ -916,7 +911,8 @@ int parse_arguments(int *argc, const char ***argv, int frommain) * 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, @@ -948,7 +944,7 @@ int parse_arguments(int *argc, const char ***argv, int frommain) return 0; } if (!files_from) - recurse = -1; /* infinite recursion */ + recurse = 1; #ifdef SUPPORT_LINKS preserve_links = 1; #endif @@ -1082,10 +1078,10 @@ int parse_arguments(int *argc, const char ***argv, int frommain) 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"; @@ -1101,8 +1097,7 @@ int parse_arguments(int *argc, const char ***argv, int frommain) 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)) @@ -1281,7 +1276,7 @@ void server_options(char **args,int *argc) argstr[x++] = 'O'; if (preserve_perms) argstr[x++] = 'p'; - if (recurse < 0) + if (recurse) argstr[x++] = 'r'; if (always_checksum) argstr[x++] = 'c'; @@ -1301,7 +1296,7 @@ void server_options(char **args,int *argc) /* 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;