Reverted one xfer_dirs change from the last commit that should not
[rsync/rsync.git] / options.c
index aa231f7..b475774 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");
@@ -530,7 +529,10 @@ static struct poptOption long_daemon_options[] = {
   {"port",             0,  POPT_ARG_INT,    &rsync_port, 0, 0, 0 },
   {"protocol",         0,  POPT_ARG_INT,    &protocol_version, 0, 0, 0 },
   {"server",           0,  POPT_ARG_NONE,   &am_server, 0, 0, 0 },
+  {"temp-dir",        'T', POPT_ARG_STRING, &tmpdir, 0, 0, 0 },
   {"verbose",         'v', POPT_ARG_NONE,   0, 'v', 0, 0 },
+  {"no-verbose",       0,  POPT_ARG_VAL,    &verbose, 0, 0, 0 },
+  {"no-v",             0,  POPT_ARG_VAL,    &verbose, 0, 0, 0 },
   {"help",            'h', POPT_ARG_NONE,   0, 'h', 0, 0 },
   {0,0,0,0, 0, 0, 0}
 };
@@ -748,6 +750,13 @@ int parse_arguments(int *argc, const char ***argv, int frommain)
                                        goto daemon_error;
                                }
                        }
+
+                       if (tmpdir && strlen(tmpdir) >= MAXPATHLEN - 10) {
+                               snprintf(err_buf, sizeof err_buf,
+                                        "the --temp-dir path is WAY too long.\n");
+                               return 0;
+                       }
+
                        if (!daemon_opt) {
                                rprintf(FERROR, "Daemon option(s) used without --daemon.\n");
                            daemon_error:
@@ -755,6 +764,7 @@ int parse_arguments(int *argc, const char ***argv, int frommain)
                                    "(Type \"rsync --daemon --help\" for assistance with daemon mode.)\n");
                                exit_cleanup(RERR_SYNTAX);
                        }
+
                        *argv = poptGetArgs(pc);
                        *argc = count_args(*argv);
                        am_starting_up = 0;
@@ -1012,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)
@@ -1160,7 +1170,7 @@ int parse_arguments(int *argc, const char ***argv, int frommain)
        }
 
        if (sparse_files && inplace) {
-               /* Note: we don't check for this below, because --update is
+               /* Note: we don't check for this below, because --append is
                 * OK with --sparse (as long as redos are handled right). */
                snprintf(err_buf, sizeof err_buf,
                         "--sparse cannot be used with --inplace\n");