X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/bd397b8cbaec1fb144e83c4e93047d50cd4759ee..e425fbe85d718e43e284b0c45c55db76f627e4e0:/options.c diff --git a/options.c b/options.c index f51e1773..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, @@ -833,10 +833,18 @@ int parse_arguments(int *argc, const char ***argv, int frommain) link_dest ? "--link-dest" : "--compare-dest"); return 0; } - } else if (partial_dir) { - if (strcmp(partial_dir, ".") == 0) - partial_dir = NULL; - keep_partial = 1; + } 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) { @@ -1013,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)