Clean generated files for distclean.
[rsync/rsync.git] / options.c
index 4ed54d9..65fc9c4 100644 (file)
--- a/options.c
+++ b/options.c
@@ -185,8 +185,8 @@ int list_only = 0;
 #define MAX_BATCH_NAME_LEN 256 /* Must be less than MAXPATHLEN-13 */
 char *batch_name = NULL;
 
-#ifdef ICONV_OPTION
 int need_unsorted_flist = 0;
+#ifdef ICONV_OPTION
 char *iconv_opt = ICONV_OPTION;
 #endif
 
@@ -351,7 +351,7 @@ void usage(enum logcode F)
   rprintf(F,"     --fake-super            store/recover privileged attrs using xattrs\n");
 #endif
   rprintf(F," -S, --sparse                handle sparse files efficiently\n");
-  rprintf(F," -n, --dry-run               show what would have been transferred\n");
+  rprintf(F," -n, --dry-run               perform a trial run with no changes made\n");
   rprintf(F," -W, --whole-file            copy files whole (without rsync algorithm)\n");
   rprintf(F," -x, --one-file-system       don't cross filesystem boundaries\n");
   rprintf(F," -B, --block-size=SIZE       force a fixed checksum block-size\n");
@@ -421,7 +421,7 @@ void usage(enum logcode F)
   rprintf(F,"     --read-batch=FILE       read a batched update from FILE\n");
   rprintf(F,"     --protocol=NUM          force an older protocol version to be used\n");
 #ifdef ICONV_OPTION
-  rprintf(F,"     --iconv=CONVERT_SPEC    request charset conversion of filesnames\n");
+  rprintf(F,"     --iconv=CONVERT_SPEC    request charset conversion of filenames\n");
 #endif
   rprintf(F," -4, --ipv4                  prefer IPv4\n");
   rprintf(F," -6, --ipv6                  prefer IPv6\n");
@@ -1009,7 +1009,7 @@ int parse_arguments(int *argc_p, const char ***argv_p, int frommain)
                                        out_of_memory("parse_arguments");
                                if (!*cp)
                                        goto options_rejected;
-                               clean_fname(cp, 1);
+                               clean_fname(cp, CFN_COLLAPSE_DOT_DOT_DIRS);
                                rej = check_filter(&server_filter_list, cp, 0) < 0;
                                free(cp);
                                if (rej)
@@ -1249,7 +1249,6 @@ int parse_arguments(int *argc_p, const char ***argv_p, int frommain)
                else
                        need_unsorted_flist = 1;
        }
-       setup_iconv();
 #endif
 
        if (protect_args == 1) {
@@ -1406,14 +1405,14 @@ int parse_arguments(int *argc_p, const char ***argv_p, int frommain)
                if (tmpdir) {
                        if (!*tmpdir)
                                goto options_rejected;
-                       clean_fname(tmpdir, 1);
+                       clean_fname(tmpdir, CFN_COLLAPSE_DOT_DOT_DIRS);
                        if (check_filter(elp, tmpdir, 1) < 0)
                                goto options_rejected;
                }
                if (backup_dir) {
                        if (!*backup_dir)
                                goto options_rejected;
-                       clean_fname(backup_dir, 1);
+                       clean_fname(backup_dir, CFN_COLLAPSE_DOT_DOT_DIRS);
                        if (check_filter(elp, backup_dir, 1) < 0)
                                goto options_rejected;
                }
@@ -1566,7 +1565,7 @@ int parse_arguments(int *argc_p, const char ***argv_p, int frommain)
                }
                if (partial_dir) {
                        if (*partial_dir)
-                               clean_fname(partial_dir, 1);
+                               clean_fname(partial_dir, CFN_COLLAPSE_DOT_DOT_DIRS);
                        if (!*partial_dir || strcmp(partial_dir, ".") == 0)
                                partial_dir = NULL;
                        if (!partial_dir && refused_partial) {
@@ -1607,7 +1606,7 @@ int parse_arguments(int *argc_p, const char ***argv_p, int frommain)
                        if (server_filter_list.head) {
                                if (!*files_from)
                                        goto options_rejected;
-                               clean_fname(files_from, 1);
+                               clean_fname(files_from, CFN_COLLAPSE_DOT_DOT_DIRS);
                                if (check_filter(&server_filter_list, files_from, 0) < 0)
                                        goto options_rejected;
                        }
@@ -1645,12 +1644,8 @@ void server_options(char **args, int *argc_p)
        static char argstr[64];
        int ac = *argc_p;
        char *arg;
-
        int i, x;
 
-       if (blocking_io == -1)
-               blocking_io = 0;
-
        /* This should always remain first on the server's command-line. */
        args[ac++] = "--server";
 
@@ -1682,7 +1677,8 @@ void server_options(char **args, int *argc_p)
                argstr[x++] = 'n';
        if (preserve_links)
                argstr[x++] = 'l';
-       if (xfer_dirs > (recurse || !delete_mode || !am_sender ? 1 : 0))
+       if ((list_only && !recurse) || xfer_dirs > 1
+        || (xfer_dirs && !recurse && delete_mode && am_sender))
                argstr[x++] = 'd';
        if (am_sender) {
                if (keep_dirlinks)
@@ -1752,20 +1748,20 @@ void server_options(char **args, int *argc_p)
        if (do_compression)
                argstr[x++] = 'z';
 
-       /* This is a complete hack - blame Rusty.  FIXME!
-        * This hack is only needed for older rsync versions that
-        * don't understand the --list-only option. */
-       if (list_only == 1 && !recurse)
-               argstr[x++] = 'r';
-
+       /* We make use of the -e option to let the server know about any
+        * pre-release protocol version && our allow_inc_recurse status. */
+       set_allow_inc_recurse();
 #if SUBPROTOCOL_VERSION != 0
-       /* If we're speaking a pre-release version of a protocol, we tell
-        * the server about this by (ab)using the -e option. */
        if (protocol_version == PROTOCOL_VERSION) {
                x += snprintf(argstr+x, sizeof argstr - x,
-                             "e%d.%d", PROTOCOL_VERSION, SUBPROTOCOL_VERSION);
-       }
+                             "e%d.%d%s", PROTOCOL_VERSION, SUBPROTOCOL_VERSION,
+                             allow_inc_recurse ? "i" : "");
+       } else
 #endif
+       if (allow_inc_recurse) {
+               argstr[x++] = 'e';
+               argstr[x++] = 'i';
+       }
 
        argstr[x] = '\0';
 
@@ -1931,8 +1927,8 @@ void server_options(char **args, int *argc_p)
        if (numeric_ids)
                args[ac++] = "--numeric-ids";
 
-       if (!allow_inc_recurse)
-               args[ac++] = "--no-i-r";
+       if (use_qsort)
+               args[ac++] = "--use-qsort";
 
        if (am_sender) {
                if (ignore_existing)