Use new log_format_has() function instead of strstr().
[rsync/rsync.git] / options.c
index b650057..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");
@@ -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,
@@ -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))