treewide: rename 'EXCL_FLAG_' to 'PATTERN_FLAG_'
The first consumer of pattern-matching filenames was the .gitignore feature. In that context, storing a list of patterns as a 'struct exclude_list' makes sense. However, the sparse-checkout feature then adopted these structures and methods, but with the opposite meaning: these patterns match the files that should be included! It would be clearer to rename this entire library as a "pattern matching" library, and the callers apply exclusion/inclusion logic accordingly based on their needs. This commit replaces 'EXCL_FLAG_' to 'PATTERN_FLAG_' in the names of the flags used on 'struct path_pattern'. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
caa3d55444
commit
4ff89ee52c
8
attr.c
8
attr.c
@ -259,7 +259,7 @@ struct pattern {
|
|||||||
const char *pattern;
|
const char *pattern;
|
||||||
int patternlen;
|
int patternlen;
|
||||||
int nowildcardlen;
|
int nowildcardlen;
|
||||||
unsigned flags; /* EXC_FLAG_* */
|
unsigned flags; /* PATTERN_FLAG_* */
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -404,7 +404,7 @@ static struct match_attr *parse_attr_line(const char *line, const char *src,
|
|||||||
&res->u.pat.patternlen,
|
&res->u.pat.patternlen,
|
||||||
&res->u.pat.flags,
|
&res->u.pat.flags,
|
||||||
&res->u.pat.nowildcardlen);
|
&res->u.pat.nowildcardlen);
|
||||||
if (res->u.pat.flags & EXC_FLAG_NEGATIVE) {
|
if (res->u.pat.flags & PATTERN_FLAG_NEGATIVE) {
|
||||||
warning(_("Negative patterns are ignored in git attributes\n"
|
warning(_("Negative patterns are ignored in git attributes\n"
|
||||||
"Use '\\!' for literal leading exclamation."));
|
"Use '\\!' for literal leading exclamation."));
|
||||||
goto fail_return;
|
goto fail_return;
|
||||||
@ -991,10 +991,10 @@ static int path_matches(const char *pathname, int pathlen,
|
|||||||
int prefix = pat->nowildcardlen;
|
int prefix = pat->nowildcardlen;
|
||||||
int isdir = (pathlen && pathname[pathlen - 1] == '/');
|
int isdir = (pathlen && pathname[pathlen - 1] == '/');
|
||||||
|
|
||||||
if ((pat->flags & EXC_FLAG_MUSTBEDIR) && !isdir)
|
if ((pat->flags & PATTERN_FLAG_MUSTBEDIR) && !isdir)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (pat->flags & EXC_FLAG_NODIR) {
|
if (pat->flags & PATTERN_FLAG_NODIR) {
|
||||||
return match_basename(pathname + basename_offset,
|
return match_basename(pathname + basename_offset,
|
||||||
pathlen - basename_offset - isdir,
|
pathlen - basename_offset - isdir,
|
||||||
pattern, prefix,
|
pattern, prefix,
|
||||||
|
@ -34,8 +34,8 @@ static const struct option check_ignore_options[] = {
|
|||||||
|
|
||||||
static void output_pattern(const char *path, struct path_pattern *pattern)
|
static void output_pattern(const char *path, struct path_pattern *pattern)
|
||||||
{
|
{
|
||||||
char *bang = (pattern && pattern->flags & EXC_FLAG_NEGATIVE) ? "!" : "";
|
char *bang = (pattern && pattern->flags & PATTERN_FLAG_NEGATIVE) ? "!" : "";
|
||||||
char *slash = (pattern && pattern->flags & EXC_FLAG_MUSTBEDIR) ? "/" : "";
|
char *slash = (pattern && pattern->flags & PATTERN_FLAG_MUSTBEDIR) ? "/" : "";
|
||||||
if (!nul_term_line) {
|
if (!nul_term_line) {
|
||||||
if (!verbose) {
|
if (!verbose) {
|
||||||
write_name_quoted(path, stdout, '\n');
|
write_name_quoted(path, stdout, '\n');
|
||||||
|
22
dir.c
22
dir.c
@ -571,20 +571,20 @@ void parse_exclude_pattern(const char **pattern,
|
|||||||
|
|
||||||
*flags = 0;
|
*flags = 0;
|
||||||
if (*p == '!') {
|
if (*p == '!') {
|
||||||
*flags |= EXC_FLAG_NEGATIVE;
|
*flags |= PATTERN_FLAG_NEGATIVE;
|
||||||
p++;
|
p++;
|
||||||
}
|
}
|
||||||
len = strlen(p);
|
len = strlen(p);
|
||||||
if (len && p[len - 1] == '/') {
|
if (len && p[len - 1] == '/') {
|
||||||
len--;
|
len--;
|
||||||
*flags |= EXC_FLAG_MUSTBEDIR;
|
*flags |= PATTERN_FLAG_MUSTBEDIR;
|
||||||
}
|
}
|
||||||
for (i = 0; i < len; i++) {
|
for (i = 0; i < len; i++) {
|
||||||
if (p[i] == '/')
|
if (p[i] == '/')
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (i == len)
|
if (i == len)
|
||||||
*flags |= EXC_FLAG_NODIR;
|
*flags |= PATTERN_FLAG_NODIR;
|
||||||
*nowildcardlen = simple_length(p);
|
*nowildcardlen = simple_length(p);
|
||||||
/*
|
/*
|
||||||
* we should have excluded the trailing slash from 'p' too,
|
* we should have excluded the trailing slash from 'p' too,
|
||||||
@ -594,7 +594,7 @@ void parse_exclude_pattern(const char **pattern,
|
|||||||
if (*nowildcardlen > len)
|
if (*nowildcardlen > len)
|
||||||
*nowildcardlen = len;
|
*nowildcardlen = len;
|
||||||
if (*p == '*' && no_wildcard(p + 1))
|
if (*p == '*' && no_wildcard(p + 1))
|
||||||
*flags |= EXC_FLAG_ENDSWITH;
|
*flags |= PATTERN_FLAG_ENDSWITH;
|
||||||
*pattern = p;
|
*pattern = p;
|
||||||
*patternlen = len;
|
*patternlen = len;
|
||||||
}
|
}
|
||||||
@ -608,7 +608,7 @@ void add_exclude(const char *string, const char *base,
|
|||||||
int nowildcardlen;
|
int nowildcardlen;
|
||||||
|
|
||||||
parse_exclude_pattern(&string, &patternlen, &flags, &nowildcardlen);
|
parse_exclude_pattern(&string, &patternlen, &flags, &nowildcardlen);
|
||||||
if (flags & EXC_FLAG_MUSTBEDIR) {
|
if (flags & PATTERN_FLAG_MUSTBEDIR) {
|
||||||
FLEXPTR_ALLOC_MEM(pattern, pattern, string, patternlen);
|
FLEXPTR_ALLOC_MEM(pattern, pattern, string, patternlen);
|
||||||
} else {
|
} else {
|
||||||
pattern = xmalloc(sizeof(*pattern));
|
pattern = xmalloc(sizeof(*pattern));
|
||||||
@ -940,7 +940,7 @@ int match_basename(const char *basename, int basenamelen,
|
|||||||
if (patternlen == basenamelen &&
|
if (patternlen == basenamelen &&
|
||||||
!fspathncmp(pattern, basename, basenamelen))
|
!fspathncmp(pattern, basename, basenamelen))
|
||||||
return 1;
|
return 1;
|
||||||
} else if (flags & EXC_FLAG_ENDSWITH) {
|
} else if (flags & PATTERN_FLAG_ENDSWITH) {
|
||||||
/* "*literal" matching against "fooliteral" */
|
/* "*literal" matching against "fooliteral" */
|
||||||
if (patternlen - 1 <= basenamelen &&
|
if (patternlen - 1 <= basenamelen &&
|
||||||
!fspathncmp(pattern + 1,
|
!fspathncmp(pattern + 1,
|
||||||
@ -1039,14 +1039,14 @@ static struct path_pattern *last_exclude_matching_from_list(const char *pathname
|
|||||||
const char *exclude = pattern->pattern;
|
const char *exclude = pattern->pattern;
|
||||||
int prefix = pattern->nowildcardlen;
|
int prefix = pattern->nowildcardlen;
|
||||||
|
|
||||||
if (pattern->flags & EXC_FLAG_MUSTBEDIR) {
|
if (pattern->flags & PATTERN_FLAG_MUSTBEDIR) {
|
||||||
if (*dtype == DT_UNKNOWN)
|
if (*dtype == DT_UNKNOWN)
|
||||||
*dtype = get_dtype(NULL, istate, pathname, pathlen);
|
*dtype = get_dtype(NULL, istate, pathname, pathlen);
|
||||||
if (*dtype != DT_DIR)
|
if (*dtype != DT_DIR)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pattern->flags & EXC_FLAG_NODIR) {
|
if (pattern->flags & PATTERN_FLAG_NODIR) {
|
||||||
if (match_basename(basename,
|
if (match_basename(basename,
|
||||||
pathlen - (basename - pathname),
|
pathlen - (basename - pathname),
|
||||||
exclude, prefix, pattern->patternlen,
|
exclude, prefix, pattern->patternlen,
|
||||||
@ -1083,7 +1083,7 @@ int is_excluded_from_list(const char *pathname,
|
|||||||
pattern = last_exclude_matching_from_list(pathname, pathlen, basename,
|
pattern = last_exclude_matching_from_list(pathname, pathlen, basename,
|
||||||
dtype, pl, istate);
|
dtype, pl, istate);
|
||||||
if (pattern)
|
if (pattern)
|
||||||
return pattern->flags & EXC_FLAG_NEGATIVE ? 0 : 1;
|
return pattern->flags & PATTERN_FLAG_NEGATIVE ? 0 : 1;
|
||||||
return -1; /* undecided */
|
return -1; /* undecided */
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1198,7 +1198,7 @@ static void prep_exclude(struct dir_struct *dir,
|
|||||||
dir->basebuf.buf + current, &dt);
|
dir->basebuf.buf + current, &dt);
|
||||||
dir->basebuf.buf[stk->baselen - 1] = '/';
|
dir->basebuf.buf[stk->baselen - 1] = '/';
|
||||||
if (dir->pattern &&
|
if (dir->pattern &&
|
||||||
dir->pattern->flags & EXC_FLAG_NEGATIVE)
|
dir->pattern->flags & PATTERN_FLAG_NEGATIVE)
|
||||||
dir->pattern = NULL;
|
dir->pattern = NULL;
|
||||||
if (dir->pattern) {
|
if (dir->pattern) {
|
||||||
dir->exclude_stack = stk;
|
dir->exclude_stack = stk;
|
||||||
@ -1298,7 +1298,7 @@ int is_excluded(struct dir_struct *dir, struct index_state *istate,
|
|||||||
struct path_pattern *pattern =
|
struct path_pattern *pattern =
|
||||||
last_exclude_matching(dir, istate, pathname, dtype_p);
|
last_exclude_matching(dir, istate, pathname, dtype_p);
|
||||||
if (pattern)
|
if (pattern)
|
||||||
return pattern->flags & EXC_FLAG_NEGATIVE ? 0 : 1;
|
return pattern->flags & PATTERN_FLAG_NEGATIVE ? 0 : 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
10
dir.h
10
dir.h
@ -11,10 +11,10 @@ struct dir_entry {
|
|||||||
char name[FLEX_ARRAY]; /* more */
|
char name[FLEX_ARRAY]; /* more */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define EXC_FLAG_NODIR 1
|
#define PATTERN_FLAG_NODIR 1
|
||||||
#define EXC_FLAG_ENDSWITH 4
|
#define PATTERN_FLAG_ENDSWITH 4
|
||||||
#define EXC_FLAG_MUSTBEDIR 8
|
#define PATTERN_FLAG_MUSTBEDIR 8
|
||||||
#define EXC_FLAG_NEGATIVE 16
|
#define PATTERN_FLAG_NEGATIVE 16
|
||||||
|
|
||||||
struct path_pattern {
|
struct path_pattern {
|
||||||
/*
|
/*
|
||||||
@ -28,7 +28,7 @@ struct path_pattern {
|
|||||||
int nowildcardlen;
|
int nowildcardlen;
|
||||||
const char *base;
|
const char *base;
|
||||||
int baselen;
|
int baselen;
|
||||||
unsigned flags; /* EXC_FLAG_* */
|
unsigned flags; /* PATTERN_FLAG_* */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Counting starts from 1 for line numbers in ignore files,
|
* Counting starts from 1 for line numbers in ignore files,
|
||||||
|
Loading…
Reference in New Issue
Block a user