+ replace_atime_preserve, system_atime_preserve
+};
+
+/* Make sure atime_preserve_types has as much entries as atime_preserve_args
+ (minus 1 for NULL guard) */
+ARGMATCH_VERIFY (atime_preserve_args, atime_preserve_types);
+
+/* Wildcard matching settings */
+enum wildcards
+ {
+ default_wildcards, /* For exclusion == enable_wildcards,
+ for inclusion == disable_wildcards */
+ disable_wildcards,
+ enable_wildcards
+ };
+
+struct tar_args /* Variables used during option parsing */
+{
+ char const *textual_date_option; /* Keeps the argument to --newer-mtime
+ option if it represents a textual date */
+ enum wildcards wildcards; /* Wildcard settings (--wildcards/
+ --no-wildcards) */
+ int matching_flags; /* exclude_fnmatch options */
+ int include_anchored; /* Pattern anchoring options used for
+ file inclusion */
+ bool o_option; /* True if -o option was given */
+ bool pax_option; /* True if --pax-option was given */
+ char const *backup_suffix_string; /* --suffix option argument */
+ char const *version_control_string; /* --backup option argument */
+ bool input_files; /* True if some input files where given */
+};
+
+#define MAKE_EXCL_OPTIONS(args) \
+ ((((args)->wildcards != disable_wildcards) ? EXCLUDE_WILDCARDS : 0) \
+ | (args)->matching_flags \
+ | recursion_option)
+
+#define MAKE_INCL_OPTIONS(args) \
+ ((((args)->wildcards == enable_wildcards) ? EXCLUDE_WILDCARDS : 0) \
+ | (args)->include_anchored \
+ | (args)->matching_flags \
+ | recursion_option)
+
+#ifdef REMOTE_SHELL
+# define DECL_SHOW_DEFAULT_SETTINGS(stream, printer) \
+{ \
+ printer (stream, \
+ "--format=%s -f%s -b%d --quoting-style=%s --rmt-command=%s", \
+ archive_format_string (DEFAULT_ARCHIVE_FORMAT), \
+ DEFAULT_ARCHIVE, DEFAULT_BLOCKING, \
+ quoting_style_args[DEFAULT_QUOTING_STYLE], \
+ DEFAULT_RMT_COMMAND); \
+ printer (stream, " --rsh-command=%s", REMOTE_SHELL); \
+ printer (stream, "\n"); \
+}
+#else
+# define DECL_SHOW_DEFAULT_SETTINGS(stream, printer) \
+{ \
+ printer (stream, \
+ "--format=%s -f%s -b%d --quoting-style=%s --rmt-command=%s", \
+ archive_format_string (DEFAULT_ARCHIVE_FORMAT), \
+ DEFAULT_ARCHIVE, DEFAULT_BLOCKING, \
+ quoting_style_args[DEFAULT_QUOTING_STYLE], \
+ DEFAULT_RMT_COMMAND); \
+ printer (stream, "\n"); \