Added RERR_VANISHED.
[rsync/rsync.git] / options.c
index 2dd0da4..85880ca 100644 (file)
--- a/options.c
+++ b/options.c
@@ -52,7 +52,7 @@ int ignore_times=0;
 int delete_mode=0;
 int delete_excluded=0;
 int one_file_system=0;
-int remote_version=0;
+int protocol_version = PROTOCOL_VERSION;
 int sparse_files=0;
 int do_compression=0;
 int am_root=0;
@@ -294,15 +294,10 @@ void usage(enum logcode F)
   rprintf(F,"See http://rsync.samba.org/ for updates, bug reports, and answers\n");
 }
 
-enum {OPT_VERSION = 1000, OPT_SENDER, OPT_SERVER, OPT_EXCLUDE,
-      OPT_EXCLUDE_FROM, OPT_DELETE, OPT_DELETE_EXCLUDED, OPT_NUMERIC_IDS,
-      OPT_RSYNC_PATH, OPT_FORCE, OPT_TIMEOUT, OPT_DAEMON, OPT_CONFIG, OPT_PORT,
-      OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_STATS, OPT_PARTIAL, OPT_PROGRESS,
-      OPT_COPY_UNSAFE_LINKS, OPT_SAFE_LINKS, OPT_COMPARE_DEST, OPT_LINK_DEST,
-      OPT_LOG_FORMAT, OPT_PASSWORD_FILE, OPT_SIZE_ONLY, OPT_ADDRESS,
-      OPT_DELETE_AFTER, OPT_EXISTING, OPT_MAX_DELETE, OPT_BACKUP_DIR,
-      OPT_IGNORE_ERRORS, OPT_BWLIMIT,
-      OPT_MODIFY_WINDOW, OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_IGNORE_EXISTING};
+enum {OPT_VERSION = 1000, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
+      OPT_DELETE_AFTER, OPT_DELETE_EXCLUDED, OPT_LINK_DEST,
+      OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW,
+      OPT_READ_BATCH, OPT_WRITE_BATCH};
 
 static struct poptOption long_options[] = {
   /* longName, shortName, argInfo, argPtr, value, descrip, argDesc */
@@ -381,6 +376,7 @@ static struct poptOption long_options[] = {
   {"files-from",       0,  POPT_ARG_STRING, &files_from, 0, 0, 0 },
   {"from0",           '0', POPT_ARG_NONE,   &eol_nulls, 0, 0, 0},
   {"no-implied-dirs",  0,  POPT_ARG_VAL,    &implied_dirs, 0, 0, 0 },
+  {"protocol",         0,  POPT_ARG_INT,    &protocol_version, 0, 0, 0 },
 #ifdef INET6
   {0,                '4', POPT_ARG_VAL,    &default_af_hint, AF_INET, 0, 0 },
   {0,                '6', POPT_ARG_VAL,    &default_af_hint, AF_INET6, 0, 0 },
@@ -401,7 +397,7 @@ void option_error(void)
 {
        if (err_buf[0]) {
                rprintf(FLOG, "%s", err_buf);
-               rprintf(FERROR, "%s: %s", RSYNC_NAME, err_buf);
+               rprintf(FERROR, RSYNC_NAME ": %s", err_buf);
        } else {
                rprintf (FERROR, "Error parsing options: "
                         "option may be supported on client but not on server?\n");
@@ -646,6 +642,9 @@ int parse_arguments(int *argc, const char ***argv, int frommain)
                exit_cleanup(RERR_SYNTAX);
        }
 
+       if (do_progress && !verbose)
+               verbose = 1;
+
        *argv = poptGetArgs(pc);
        if (*argv)
                *argc = count_args(*argv);
@@ -658,8 +657,11 @@ int parse_arguments(int *argc, const char ***argv, int frommain)
                        usage(FERROR);
                        exit_cleanup(RERR_SYNTAX);
                }
-               if (strcmp(files_from, "-") == 0)
+               if (strcmp(files_from, "-") == 0) {
                        filesfrom_fd = 0;
+                       if (am_server)
+                               remote_filesfrom_file = "-";
+               }
                else if ((colon = find_colon(files_from)) != 0) {
                        if (am_server) {
                                usage(FERROR);
@@ -826,7 +828,7 @@ void server_options(char **args,int *argc)
 
        /* Only send --suffix if it specifies a non-default value. */
        if (strcmp(backup_suffix, backup_dir? "" : BACKUP_SUFFIX) != 0) {
-               char *s = malloc(9+backup_suffix_len+1);
+               char *s = new_array(char, 9+backup_suffix_len+1);
                if (!s)
                        out_of_memory("server_options");
                /* We use the following syntax to avoid weirdness with '~'. */