/* Common declarations for the tar program.
Copyright (C) 1988, 1992, 1993, 1994, 1996, 1997, 1999, 2000, 2001,
- 2003, 2004, 2005 Free Software Foundation, Inc.
+ 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
size_t length; /* cached strlen(name) */
uintmax_t found_count; /* number of times a matching file has
been found */
- int isdir;
+ int explicit; /* was explicitely given in the command line */
char firstch; /* first char is literally matched */
char regexp; /* this name is a regexp, not literal */
int change_dir; /* set with the -C option */
GLOBAL bool test_label_option; /* Test archive volume label and exit */
-GLOBAL bool show_stored_names_option; /* When creating archive in verbose mode,
- list member names as stored in the
- archive */
+/* When creating archive in verbose mode, list member names as stored in the
+ archive */
+GLOBAL bool show_stored_names_option;
+
+/* Delay setting modification times and permissions of extracted directories
+ until the end of extraction. This variable helps correctly restore directory
+ timestamps from archives with an unusual member order. It is automatically
+ set for incremental archives. */
+GLOBAL bool delay_directory_restore_option;
\f
/* Declarations for each module. */
void update_parent_directory (const char *name);
size_t dumpdir_size (const char *p);
-void get_gnu_dumpdir (void);
+bool is_dumpdir (struct tar_stat_info *stat_info);
/* Module list.c. */
void xpipe (int[2]);
void *page_aligned_alloc (void **, size_t);
+int set_file_atime (int fd, char const *file,
+ struct timespec const timespec[2]);
/* Module names.c. */
int name_match (const char *);
void names_notfound (void);
void collect_and_sort_names (void);
-struct name *name_scan (const char *);
+struct name *name_scan (const char *, bool);
char *name_from_list (void);
void blank_name_list (void);
char *new_name (const char *, const char *);
bool xheader_keyword_deleted_p (const char *kw);
char *xheader_format_name (struct tar_stat_info *st, const char *fmt,
size_t n);
-
+
/* Module system.c */
void sys_detect_dev_null_output (void);