/* Common declarations for the tar program.
- Copyright 1988, 1992-1994, 1996-1997, 1999-2010, 2012-2013 Free
+ Copyright 1988, 1992-1994, 1996-1997, 1999-2010, 2012-2015 Free
Software Foundation, Inc.
This file is part of GNU tar.
/* Create a top-level directory for extracting based on the archive name. */
GLOBAL bool one_top_level_option;
-GLOBAL char *one_top_level;
+GLOBAL char *one_top_level_dir;
/* Specified value to be put into tar file in place of stat () results, or
just null and -1 if such an override should not take place. */
/* Unquote filenames */
GLOBAL bool unquote_option;
+/* Treat file names read from -T input verbatim */
+GLOBAL bool verbatim_files_from_option;
+
+GLOBAL int savedir_sort_order;
+
/* Show file or archive names after transformation.
In particular, when creating archive in verbose mode, list member names
as stored in the archive */
void extract_finish (void);
bool rename_directory (char *src, char *dst);
+void remove_delayed_set_stat (const char *fname);
+
/* Module delete.c. */
void delete_archive_members (void);
void name_init (void);
void name_add_name (const char *name, int matching_flags);
void name_add_dir (const char *name);
-void name_add_file (const char *name, int term);
+void name_add_file (const char *name, int term, bool verbatim,
+ int matching_flags);
void name_term (void);
const char *name_next (int change_dirs);
void name_gather (void);
size_t stripped_prefix_len (char const *file_name, size_t num);
bool all_names_found (struct tar_stat_info *st);
-bool excluded_name (char const *name);
-
void add_avoided_name (char const *name);
bool is_avoided_name (char const *name);
bool contains_dot_dot (char const *name);
-#define ISFOUND(c) ((occurrence_option == 0) ? (c)->found_count : \
- (c)->found_count == occurrence_option)
-#define WASFOUND(c) ((occurrence_option == 0) ? (c)->found_count : \
- (c)->found_count >= occurrence_option)
+#define ISFOUND(c) (occurrence_option == 0 \
+ ? (c)->found_count != 0 \
+ : (c)->found_count == occurrence_option)
+#define WASFOUND(c) (occurrence_option == 0 \
+ ? (c)->found_count != 0 \
+ : (c)->found_count >= occurrence_option)
/* Module tar.c. */
/* Module suffix.c */
void set_compression_program_by_suffix (const char *name, const char *defprog);
+char *strip_compression_suffix (const char *name);
/* Module checkpoint.c */
void checkpoint_compile_action (const char *str);
/* Module exit.c */
extern void (*fatal_exit_hook) (void);
+/* Module exclist.c */
+#define EXCL_DEFAULT 0x00
+#define EXCL_RECURSIVE 0x01
+#define EXCL_NON_RECURSIVE 0x02
+
+void excfile_add (const char *name, int flags);
+void info_attach_exclist (struct tar_stat_info *dir);
+void info_cleanup_exclist (struct tar_stat_info *dir);
+void info_free_exclist (struct tar_stat_info *dir);
+bool excluded_name (char const *name, struct tar_stat_info *st);
+void exclude_vcs_ignores (void);
+
_GL_INLINE_HEADER_END