Changed the bind_address local variables to be named bind_addr
[rsync/rsync.git] / options.c
index cb9bbaf..e6bc32b 100644 (file)
--- a/options.c
+++ b/options.c
@@ -150,7 +150,6 @@ char *dest_option = NULL;
 
 int verbose = 0;
 int quiet = 0;
-int itemize_changes = 0;
 int log_before_transfer = 0;
 int log_format_has_i = 0;
 int log_format_has_o_or_i = 0;
@@ -163,6 +162,7 @@ char *batch_name = NULL;
 static int daemon_opt;   /* sets am_daemon after option error-reporting */
 static int F_option_cnt = 0;
 static int modify_window_set;
+static int itemize_changes = 0;
 static int refused_delete, refused_archive_part;
 static int refused_partial, refused_progress, refused_delete_before;
 static char *max_size_arg;
@@ -345,6 +345,7 @@ void usage(enum logcode F)
   rprintf(F,"     --bwlimit=KBPS          limit I/O bandwidth; KBytes per second\n");
   rprintf(F,"     --write-batch=FILE      write a batched update to FILE\n");
   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 INET6
   rprintf(F," -4, --ipv4                  prefer IPv4\n");
   rprintf(F," -6, --ipv6                  prefer IPv6\n");
@@ -415,7 +416,7 @@ static struct poptOption long_options[] = {
   {"archive",         'a', POPT_ARG_NONE,   &archive_mode, 0, 0, 0 },
   {"server",           0,  POPT_ARG_NONE,   &am_server, 0, 0, 0 },
   {"sender",           0,  POPT_ARG_NONE,   0, OPT_SENDER, 0, 0 },
-  {"recursive",       'r', POPT_ARG_VAL,    &recurse, -1, 0, 0 },
+  {"recursive",       'r', POPT_ARG_NONE,   &recurse, 0, 0, 0 },
   {"list-only",        0,  POPT_ARG_VAL,    &list_only, 2, 0, 0 },
   {"relative",        'R', POPT_ARG_VAL,    &relative_paths, 1, 0, 0 },
   {"no-relative",      0,  POPT_ARG_VAL,    &relative_paths, 0, 0, 0 },
@@ -901,12 +902,6 @@ int parse_arguments(int *argc, const char ***argv, int frommain)
                return 0;
        }
        if (write_batch || read_batch) {
-               if (dry_run) {
-                       snprintf(err_buf, sizeof err_buf,
-                               "--%s-batch cannot be used with --dry_run (-n)\n",
-                               write_batch ? "write" : "read");
-                       return 0;
-               }
                if (am_server) {
                        rprintf(FINFO,
                                "ignoring --%s-batch option sent to server\n",
@@ -916,7 +911,8 @@ int parse_arguments(int *argc, const char ***argv, int frommain)
                         * batch args to server. */
                        read_batch = write_batch = 0;
                        batch_name = NULL;
-               }
+               } else if (dry_run)
+                       write_batch = 0;
        }
        if (read_batch && files_from) {
                snprintf(err_buf, sizeof err_buf,
@@ -948,7 +944,7 @@ int parse_arguments(int *argc, const char ***argv, int frommain)
                        return 0;
                }
                if (!files_from)
-                       recurse = -1; /* infinite recursion */
+                       recurse = 1;
 #ifdef SUPPORT_LINKS
                preserve_links = 1;
 #endif
@@ -1082,10 +1078,10 @@ int parse_arguments(int *argc, const char ***argv, int frommain)
                omit_dir_times = 1;
 
        if (log_format) {
-               if (strstr(log_format, "%i") != NULL)
+               if (log_format_has(log_format, 'i'))
                        log_format_has_i = 1;
-               if (strstr(log_format, "%b") == NULL
-                && strstr(log_format, "%c") == NULL)
+               if (!log_format_has(log_format, 'b')
+                && !log_format_has(log_format, 'c'))
                        log_before_transfer = !am_server;
        } else if (itemize_changes) {
                log_format = "%i %n%L";
@@ -1101,8 +1097,7 @@ int parse_arguments(int *argc, const char ***argv, int frommain)
                log_format = "%n%L";
                log_before_transfer = !am_server;
        }
-       if (log_format_has_i
-           || (log_format && strstr(log_format, "%o") != NULL))
+       if (log_format_has_i || log_format_has(log_format, 'o'))
                log_format_has_o_or_i = 1;
 
        if (daemon_bwlimit && (!bwlimit || bwlimit > daemon_bwlimit))
@@ -1281,7 +1276,7 @@ void server_options(char **args,int *argc)
                argstr[x++] = 'O';
        if (preserve_perms)
                argstr[x++] = 'p';
-       if (recurse < 0)
+       if (recurse)
                argstr[x++] = 'r';
        if (always_checksum)
                argstr[x++] = 'c';
@@ -1301,7 +1296,7 @@ void server_options(char **args,int *argc)
        /* 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 >= 0)
+       if (list_only == 1 && !recurse)
                argstr[x++] = 'r';
 
        argstr[x] = 0;