From 46aa2f95d2fa79164fb0f5ad79bdd1d26fe689ea Mon Sep 17 00:00:00 2001 From: Karsten Blees Date: Mon, 15 Apr 2013 21:11:02 +0200 Subject: [PATCH] dir.c: factor out parts of last_exclude_matching for later reuse Signed-off-by: Karsten Blees Signed-off-by: Junio C Hamano --- dir.c | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/dir.c b/dir.c index 7a98e3ac8a..46d127ca20 100644 --- a/dir.c +++ b/dir.c @@ -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); } /* -- 2.11.4.GIT