diff options
author | Karsten Blees <karsten.blees@gmail.com> | 2013-04-15 21:11:02 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-04-15 12:34:00 -0700 |
commit | 46aa2f95d2fa79164fb0f5ad79bdd1d26fe689ea (patch) | |
tree | 000d00071b43dd78a4b74602ea84eb8c0d50362f /dir.c | |
parent | 5bd8e2d894be3a27e9b32b062ff224cc2396b69c (diff) | |
download | git-46aa2f95d2fa79164fb0f5ad79bdd1d26fe689ea.tar.gz |
dir.c: factor out parts of last_exclude_matching for later reuse
Signed-off-by: Karsten Blees <blees@dcon.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'dir.c')
-rw-r--r-- | dir.c | 36 |
1 files changed, 22 insertions, 14 deletions
@@ -795,6 +795,26 @@ int is_excluded_from_list(const char *pathname, return -1; /* undecided */ } +static struct exclude *last_exclude_matching_from_lists(struct dir_struct *dir, + const char *pathname, int pathlen, const char *basename, + int *dtype_p) +{ + int i, j; + struct exclude_list_group *group; + struct exclude *exclude; + for (i = EXC_CMDL; i <= EXC_FILE; i++) { + group = &dir->exclude_list_group[i]; + for (j = group->nr - 1; j >= 0; j--) { + exclude = last_exclude_matching_from_list( + pathname, pathlen, basename, dtype_p, + &group->el[j]); + if (exclude) + return exclude; + } + } + return NULL; +} + /* * Loads the exclude lists for the directory containing pathname, then * scans all exclude lists to determine whether pathname is excluded. @@ -806,25 +826,13 @@ static struct exclude *last_exclude_matching(struct dir_struct *dir, int *dtype_p) { int pathlen = strlen(pathname); - int i, j; - struct exclude_list_group *group; - struct exclude *exclude; const char *basename = strrchr(pathname, '/'); basename = (basename) ? basename+1 : pathname; prep_exclude(dir, pathname, basename-pathname); - for (i = EXC_CMDL; i <= EXC_FILE; i++) { - group = &dir->exclude_list_group[i]; - for (j = group->nr - 1; j >= 0; j--) { - exclude = last_exclude_matching_from_list( - pathname, pathlen, basename, dtype_p, - &group->el[j]); - if (exclude) - return exclude; - } - } - return NULL; + return last_exclude_matching_from_lists(dir, pathname, pathlen, + basename, dtype_p); } /* |