In get_exclude_tok(), if XFLG_DIRECTORY was passed in the xflags,
[rsync/rsync.git] / options.c
index f51e177..348a2da 100644 (file)
--- a/options.c
+++ b/options.c
@@ -833,10 +833,14 @@ 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;
+                       keep_partial = 1;
+               }
        }
 
        if (files_from) {
@@ -1013,8 +1017,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)