X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/a20c9893e48771be31befbb1ef809e87a658db61..da6eb9d123caf52640ae0cd6017fb0b657188c89:/options.c diff --git a/options.c b/options.c index 9c971910..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) {