treewide: rename 'struct exclude' to 'struct path_pattern'
The first consumer of pattern-matching filenames was the .gitignore feature. In that context, storing a list of patterns as a list of 'struct exclude' items 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 renames 'struct exclude' to 'struct path_pattern' and renames several variable names to match. 'struct pattern' was already taken by attr.c, and this more completely describes that the patterns are specific to file paths. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
90d21f9ebf
commit
ab8db61390
@ -32,19 +32,19 @@ static const struct option check_ignore_options[] = {
|
||||
OPT_END()
|
||||
};
|
||||
|
||||
static void output_exclude(const char *path, struct exclude *exclude)
|
||||
static void output_pattern(const char *path, struct path_pattern *pattern)
|
||||
{
|
||||
char *bang = (exclude && exclude->flags & EXC_FLAG_NEGATIVE) ? "!" : "";
|
||||
char *slash = (exclude && exclude->flags & EXC_FLAG_MUSTBEDIR) ? "/" : "";
|
||||
char *bang = (pattern && pattern->flags & EXC_FLAG_NEGATIVE) ? "!" : "";
|
||||
char *slash = (pattern && pattern->flags & EXC_FLAG_MUSTBEDIR) ? "/" : "";
|
||||
if (!nul_term_line) {
|
||||
if (!verbose) {
|
||||
write_name_quoted(path, stdout, '\n');
|
||||
} else {
|
||||
if (exclude) {
|
||||
quote_c_style(exclude->el->src, NULL, stdout, 0);
|
||||
if (pattern) {
|
||||
quote_c_style(pattern->el->src, NULL, stdout, 0);
|
||||
printf(":%d:%s%s%s\t",
|
||||
exclude->srcpos,
|
||||
bang, exclude->pattern, slash);
|
||||
pattern->srcpos,
|
||||
bang, pattern->pattern, slash);
|
||||
}
|
||||
else {
|
||||
printf("::\t");
|
||||
@ -56,11 +56,11 @@ static void output_exclude(const char *path, struct exclude *exclude)
|
||||
if (!verbose) {
|
||||
printf("%s%c", path, '\0');
|
||||
} else {
|
||||
if (exclude)
|
||||
if (pattern)
|
||||
printf("%s%c%d%c%s%s%s%c%s%c",
|
||||
exclude->el->src, '\0',
|
||||
exclude->srcpos, '\0',
|
||||
bang, exclude->pattern, slash, '\0',
|
||||
pattern->el->src, '\0',
|
||||
pattern->srcpos, '\0',
|
||||
bang, pattern->pattern, slash, '\0',
|
||||
path, '\0');
|
||||
else
|
||||
printf("%c%c%c%s%c", '\0', '\0', '\0', path, '\0');
|
||||
@ -74,7 +74,7 @@ static int check_ignore(struct dir_struct *dir,
|
||||
const char *full_path;
|
||||
char *seen;
|
||||
int num_ignored = 0, i;
|
||||
struct exclude *exclude;
|
||||
struct path_pattern *pattern;
|
||||
struct pathspec pathspec;
|
||||
|
||||
if (!argc) {
|
||||
@ -103,15 +103,15 @@ static int check_ignore(struct dir_struct *dir,
|
||||
seen = find_pathspecs_matching_against_index(&pathspec, &the_index);
|
||||
for (i = 0; i < pathspec.nr; i++) {
|
||||
full_path = pathspec.items[i].match;
|
||||
exclude = NULL;
|
||||
pattern = NULL;
|
||||
if (!seen[i]) {
|
||||
int dtype = DT_UNKNOWN;
|
||||
exclude = last_exclude_matching(dir, &the_index,
|
||||
pattern = last_exclude_matching(dir, &the_index,
|
||||
full_path, &dtype);
|
||||
}
|
||||
if (!quiet && (exclude || show_non_matching))
|
||||
output_exclude(pathspec.items[i].original, exclude);
|
||||
if (exclude)
|
||||
if (!quiet && (pattern || show_non_matching))
|
||||
output_pattern(pathspec.items[i].original, pattern);
|
||||
if (pattern)
|
||||
num_ignored++;
|
||||
}
|
||||
free(seen);
|
||||
|
Reference in New Issue
Block a user