(occurrence_option): New global

(struct name): Changed `found' member to `uintmax_t
found_count'.
(names_done): Removed
(all_names_found): Changed prototype.
(ISFOUND,WASFOUND): New macros
This commit is contained in:
Sergey Poznyakoff
2003-10-04 13:49:25 +00:00
parent 35d44a05eb
commit 660c6d9b64

View File

@@ -176,6 +176,9 @@ GLOBAL const char *info_script_option;
GLOBAL bool interactive_option;
/* If nonzero, extract only Nth occurrence of each named file */
GLOBAL uintmax_t occurrence_option;
enum old_files
{
DEFAULT_OLD_FILES, /* default */
@@ -295,7 +298,9 @@ struct name
{
struct name *next;
size_t length; /* cached strlen(name) */
char found; /* a matching file has been found */
uintmax_t found_count; /* number of times a matching file has
been found */
int isdir;
char firstch; /* first char is literally matched */
char regexp; /* this name is a regexp, not literal */
int change_dir; /* set with the -C option */
@@ -560,7 +565,6 @@ void name_close (void);
void name_gather (void);
struct name *addname (char const *, int);
int name_match (const char *);
bool names_done (void);
void names_notfound (void);
void collect_and_sort_names (void);
struct name *name_scan (const char *);
@@ -569,6 +573,7 @@ void blank_name_list (void);
char *new_name (const char *, const char *);
char *safer_name_suffix (char const *, bool);
size_t stripped_path_len (char const *file_name, size_t num);
bool all_names_found (struct tar_stat_info *);
bool excluded_name (char const *);
@@ -577,12 +582,16 @@ bool is_avoided_name (char const *);
bool contains_dot_dot (char const *);
#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)
/* Module tar.c. */
int confirm (const char *, const char *);
void request_stdin (const char *);
void destroy_stat (struct tar_stat_info *);
bool all_names_found (void);
/* Module update.c. */