- When --dirs is specified w/o --recursive, avoid marking solo dirs
[rsync/rsync.git] / options.c
index 669b15f..dacc3b8 100644 (file)
--- a/options.c
+++ b/options.c
@@ -251,16 +251,15 @@ void usage(enum logcode F)
 
   rprintf(F,"\nrsync is a file transfer program capable of efficient remote update\nvia a fast differencing algorithm.\n\n");
 
-  rprintf(F,"Usage: rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST\n");
+  rprintf(F,"Usage: rsync [OPTION]... SRC [SRC]... DEST\n");
+  rprintf(F,"  or   rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST\n");
+  rprintf(F,"  or   rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST\n");
+  rprintf(F,"  or   rsync [OPTION]... SRC [SRC]... rsync://[USER@]HOST[:PORT]/DEST\n");
   rprintf(F,"  or   rsync [OPTION]... [USER@]HOST:SRC [DEST]\n");
-  rprintf(F,"  or   rsync [OPTION]... SRC [SRC]... DEST\n");
   rprintf(F,"  or   rsync [OPTION]... [USER@]HOST::SRC [DEST]\n");
-  rprintf(F,"  or   rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST\n");
   rprintf(F,"  or   rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]\n");
-  rprintf(F,"  or   rsync [OPTION]... SRC [SRC]... rsync://[USER@]HOST[:PORT]/DEST\n");
-  rprintf(F,"SRC on single-colon remote HOST will be expanded by remote shell\n");
-  rprintf(F,"SRC on server remote HOST may contain shell wildcards or multiple\n");
-  rprintf(F,"  sources separated by space as long as they have same top-level\n");
+  rprintf(F,"The ':' usages connect via remote shell, while '::' & 'rsync://' usages connect\n");
+  rprintf(F,"to an rsync daemon, and require SRC or DEST to start with a module name.\n");
   rprintf(F,"\nOptions\n");
   rprintf(F," -v, --verbose               increase verbosity\n");
   rprintf(F," -q, --quiet                 suppress non-error messages\n");
@@ -1006,7 +1005,7 @@ int parse_arguments(int *argc, const char ***argv, int frommain)
        if (files_from) {
                if (recurse == 1) /* preserve recurse == 2 */
                        recurse = 0;
-               if (xfer_dirs < 0)
+               if (xfer_dirs < 1)
                        xfer_dirs = 1;
        }
 
@@ -1023,7 +1022,7 @@ int parse_arguments(int *argc, const char ***argv, int frommain)
                        "You may not combine multiple --delete-WHEN options.\n");
                return 0;
        }
-       if (!recurse) {
+       if (!xfer_dirs) {
                delete_before = delete_during = delete_after = 0;
                delete_mode = delete_excluded = 0;
        } else if (delete_before || delete_during || delete_after)