(exclusion_tag_warning, check_exclusion_tags): Remove static qualifier.
(check_exclusion_tags): account for dirname without terminating slash. (dump_dir0): exclusion_tag_all is handled elsewhere.
This commit is contained in:
14
src/create.c
14
src/create.c
@@ -58,7 +58,7 @@ add_exclusion_tag (const char *name, enum exclusion_tag_type type,
|
||||
exclusion_tags = tag;
|
||||
}
|
||||
|
||||
static void
|
||||
void
|
||||
exclusion_tag_warning (const char *dirname, const char *tagname,
|
||||
const char *message)
|
||||
{
|
||||
@@ -70,18 +70,19 @@ exclusion_tag_warning (const char *dirname, const char *tagname,
|
||||
message));
|
||||
}
|
||||
|
||||
static enum exclusion_tag_type
|
||||
enum exclusion_tag_type
|
||||
check_exclusion_tags (char *dirname, const char **tag_file_name)
|
||||
{
|
||||
static char *tagname;
|
||||
static size_t tagsize;
|
||||
struct exclusion_tag *tag;
|
||||
size_t dlen = strlen (dirname);
|
||||
int addslash = dirname[dlen-1] != '/';
|
||||
char *nptr = NULL;
|
||||
|
||||
for (tag = exclusion_tags; tag; tag = tag->next)
|
||||
{
|
||||
size_t size = dlen + tag->length + 1;
|
||||
size_t size = dlen + addslash + tag->length + 1;
|
||||
if (size > tagsize)
|
||||
{
|
||||
tagsize = size;
|
||||
@@ -92,6 +93,8 @@ check_exclusion_tags (char *dirname, const char **tag_file_name)
|
||||
{
|
||||
strcpy (tagname, dirname);
|
||||
nptr = tagname + dlen;
|
||||
if (addslash)
|
||||
*nptr++ = '/';
|
||||
}
|
||||
strcpy (nptr, tag->name);
|
||||
if (access (tagname, F_OK) == 0
|
||||
@@ -1182,8 +1185,11 @@ dump_dir0 (char *directory,
|
||||
|
||||
switch (check_exclusion_tags (st->orig_file_name, &tag_file_name))
|
||||
{
|
||||
case exclusion_tag_none:
|
||||
case exclusion_tag_all:
|
||||
/* Handled in dump_file0 */
|
||||
break;
|
||||
|
||||
case exclusion_tag_none:
|
||||
{
|
||||
char const *entry;
|
||||
size_t entry_len;
|
||||
|
||||
Reference in New Issue
Block a user