X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/7be73df4e7c9978b619c7e849b3f8ac2987cb667..bf6dcd17133e4e29e09420e3252a4184be3b04b6:/options.c diff --git a/options.c b/options.c index d5303c85..e848cd7f 100644 --- a/options.c +++ b/options.c @@ -23,7 +23,7 @@ extern int sanitize_paths; extern char curr_dir[MAXPATHLEN]; -extern struct exclude_struct **exclude_list; +extern struct exclude_list_struct exclude_list; int make_backups = 0; @@ -510,13 +510,12 @@ int parse_arguments(int *argc, const char ***argv, int frommain) break; case OPT_EXCLUDE: - add_exclude(&exclude_list, poptGetOptArg(pc), - ADD_EXCLUDE); + add_exclude(&exclude_list, poptGetOptArg(pc), 0); break; case OPT_INCLUDE: add_exclude(&exclude_list, poptGetOptArg(pc), - ADD_INCLUDE); + XFLG_DEF_INCLUDE); break; case OPT_EXCLUDE_FROM: @@ -524,7 +523,7 @@ int parse_arguments(int *argc, const char ***argv, int frommain) if (sanitize_paths) arg = alloc_sanitize_path(arg, curr_dir); add_exclude_file(&exclude_list, arg, - MISSING_FATAL, ADD_EXCLUDE); + XFLG_FATAL_ERRORS); break; case OPT_INCLUDE_FROM: @@ -532,7 +531,7 @@ int parse_arguments(int *argc, const char ***argv, int frommain) if (sanitize_paths) arg = alloc_sanitize_path(arg, curr_dir); add_exclude_file(&exclude_list, arg, - MISSING_FATAL, ADD_INCLUDE); + XFLG_FATAL_ERRORS | XFLG_DEF_INCLUDE); break; case 'h': @@ -682,13 +681,18 @@ int parse_arguments(int *argc, const char ***argv, int frommain) tmpdir = alloc_sanitize_path(tmpdir, curr_dir); if (compare_dest) compare_dest = alloc_sanitize_path(compare_dest, curr_dir); - fprintf(stderr, "compare_dest=`%s'\n", compare_dest); if (backup_dir) backup_dir = alloc_sanitize_path(backup_dir, curr_dir); if (files_from) files_from = alloc_sanitize_path(files_from, curr_dir); } + if (daemon_opt) { + daemon_opt = 0; + am_daemon = 1; + return 1; + } + if (!backup_suffix) backup_suffix = backup_dir ? "" : BACKUP_SUFFIX; backup_suffix_len = strlen(backup_suffix); @@ -708,9 +712,9 @@ int parse_arguments(int *argc, const char ***argv, int frommain) backup_dir_buf[backup_dir_len++] = '/'; backup_dir_buf[backup_dir_len] = '\0'; } - if (verbose > 1) + if (verbose > 1 && !am_sender) rprintf(FINFO, "backup_dir is %s\n", backup_dir_buf); - } else if (!backup_suffix_len) { + } else if (!backup_suffix_len && (!am_server || !am_sender)) { rprintf(FERROR, "--suffix cannot be a null string without --backup-dir\n"); exit_cleanup(RERR_SYNTAX); @@ -721,7 +725,7 @@ int parse_arguments(int *argc, const char ***argv, int frommain) if (files_from) { char *colon; - if (*argc != 2) { + if (*argc != 2 && !(am_server && am_sender && *argc == 1)) { usage(FERROR); exit_cleanup(RERR_SYNTAX); } @@ -751,9 +755,6 @@ int parse_arguments(int *argc, const char ***argv, int frommain) } } - if (daemon_opt) - am_daemon = 1; - return 1; }