X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/eb8f5c74e1c0711a557fd9ce9bd411500ff997d6..88a7426843ea6b8ee80ea9c986ffc554600ef4e9:/options.c diff --git a/options.c b/options.c index 4ed54d99..e4fe5bd8 100644 --- a/options.c +++ b/options.c @@ -1249,7 +1249,6 @@ int parse_arguments(int *argc_p, const char ***argv_p, int frommain) else need_unsorted_flist = 1; } - setup_iconv(); #endif if (protect_args == 1) { @@ -1645,12 +1644,8 @@ void server_options(char **args, int *argc_p) static char argstr[64]; int ac = *argc_p; char *arg; - int i, x; - if (blocking_io == -1) - blocking_io = 0; - /* This should always remain first on the server's command-line. */ args[ac++] = "--server"; @@ -1682,7 +1677,8 @@ void server_options(char **args, int *argc_p) argstr[x++] = 'n'; if (preserve_links) argstr[x++] = 'l'; - if (xfer_dirs > (recurse || !delete_mode || !am_sender ? 1 : 0)) + if ((list_only && !recurse) || xfer_dirs > 1 + || (xfer_dirs && !recurse && delete_mode && am_sender)) argstr[x++] = 'd'; if (am_sender) { if (keep_dirlinks) @@ -1752,20 +1748,20 @@ void server_options(char **args, int *argc_p) if (do_compression) argstr[x++] = 'z'; - /* 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) - argstr[x++] = 'r'; - + /* We make use of the -e option to let the server know about any + * pre-release protocol version && our allow_inc_recurse status. */ + set_allow_inc_recurse(); #if SUBPROTOCOL_VERSION != 0 - /* If we're speaking a pre-release version of a protocol, we tell - * the server about this by (ab)using the -e option. */ if (protocol_version == PROTOCOL_VERSION) { x += snprintf(argstr+x, sizeof argstr - x, - "e%d.%d", PROTOCOL_VERSION, SUBPROTOCOL_VERSION); - } + "e%d.%d%s", PROTOCOL_VERSION, SUBPROTOCOL_VERSION, + allow_inc_recurse ? "i" : ""); + } else #endif + if (allow_inc_recurse) { + argstr[x++] = 'e'; + argstr[x++] = 'i'; + } argstr[x] = '\0'; @@ -1931,8 +1927,8 @@ void server_options(char **args, int *argc_p) if (numeric_ids) args[ac++] = "--numeric-ids"; - if (!allow_inc_recurse) - args[ac++] = "--no-i-r"; + if (use_qsort) + args[ac++] = "--use-qsort"; if (am_sender) { if (ignore_existing)