X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/ba3db4795ea258f9defc47fe7eeceb30c080b59a..a2570930e80535cf6c3018e331098c9c73ef03bd:/options.c diff --git a/options.c b/options.c index a1c8df55..5cb43217 100644 --- a/options.c +++ b/options.c @@ -623,7 +623,7 @@ int parse_arguments(int *argc, const char ***argv, int frommain) struct poptOption *op = &long_options[opt-OPT_REFUSED_BASE]; int n = snprintf(err_buf, sizeof err_buf, - "This server does not support --%s\n", + "The server is configured to refuse --%s\n", op->longName) - 1; if (op->shortName) { snprintf(err_buf+n, sizeof err_buf-n, @@ -827,10 +827,24 @@ int parse_arguments(int *argc, const char ***argv, int frommain) am_server ? "server" : "client"); return 0; #endif - } else if (partial_dir) { - if (strcmp(partial_dir, ".") == 0) - partial_dir = NULL; - keep_partial = 1; + if (compare_dest) { + snprintf(err_buf, sizeof err_buf, + "--inplace does not yet work with %s\n", + link_dest ? "--link-dest" : "--compare-dest"); + return 0; + } + } else { + if (keep_partial && !partial_dir) + partial_dir = getenv("RSYNC_PARTIAL_DIR"); + if (partial_dir) { + if (!*partial_dir || strcmp(partial_dir, ".") == 0) + partial_dir = NULL; + else if (*partial_dir != '/') { + add_exclude(&exclude_list, partial_dir, + XFLG_DIRECTORY); + } + keep_partial = 1; + } } if (files_from) { @@ -1007,8 +1021,7 @@ void server_options(char **args,int *argc) if (am_sender) { if (delete_excluded) args[ac++] = "--delete-excluded"; - else if (delete_mode - && (!delete_after || protocol_version < 27)) + else if (delete_mode) args[ac++] = "--delete"; if (delete_after)