Added "debug_type" to the exclude_list_struct.
[rsync/rsync.git] / options.c
index 6deafd0..b14ef1c 100644 (file)
--- 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;
 
@@ -183,7 +183,7 @@ static void print_rsync_version(enum logcode f)
        rprintf(f, "              %sIPv6, %d-bit system inums, %d-bit internal inums\n",
                ipv6,
                (int) (sizeof dumstat->st_ino * 8),
-               (int) (sizeof (INO64_T) * 8));
+               (int) (sizeof (uint64) * 8));
 #ifdef MAINTAINER_MODE
        rprintf(f, "              panic action: \"%s\"\n",
                get_panic_action());
@@ -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':
@@ -688,6 +687,12 @@ int parse_arguments(int *argc, const char ***argv, int frommain)
                        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);
@@ -707,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);
@@ -720,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);
                }
@@ -750,9 +755,6 @@ int parse_arguments(int *argc, const char ***argv, int frommain)
                }
        }
 
-       if (daemon_opt)
-               am_daemon = 1;
-
        return 1;
 }