summaryrefslogtreecommitdiff
path: root/dir.h
diff options
context:
space:
mode:
authorAdam Spiers <git@adamspiers.org>2012-12-27 02:32:28 +0000
committerJunio C Hamano <gitster@pobox.com>2012-12-28 12:07:46 -0800
commita35341a86ecf354d46cf326ed9e0ffbceb54309d (patch)
treeeb24f88e39224e0d5fe63b4cbc5055a335379919 /dir.h
parentf4cd69a67469eff90bee8e31529ca4e03c1afdf2 (diff)
downloadgit-a35341a86ecf354d46cf326ed9e0ffbceb54309d.tar.gz
dir.c: refactor is_path_excluded()
In a similar way to the previous commit, this extracts a new helper function last_exclude_matching_path() which return the last exclude_list element which matched, or NULL if no match was found. is_path_excluded() becomes a wrapper around this, and just returns 0 or 1 depending on whether any matching exclude_list element was found. This allows callers to find out _why_ a given path was excluded, rather than just whether it was or not, paving the way for a new git sub-command which allows users to test their exclude lists from the command line. Signed-off-by: Adam Spiers <git@adamspiers.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'dir.h')
-rw-r--r--dir.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/dir.h b/dir.h
index d68a9971c2..dcb1ad3d3a 100644
--- a/dir.h
+++ b/dir.h
@@ -119,10 +119,13 @@ extern int match_pathname(const char *, int,
*/
struct path_exclude_check {
struct dir_struct *dir;
+ struct exclude *exclude;
struct strbuf path;
};
extern void path_exclude_check_init(struct path_exclude_check *, struct dir_struct *);
extern void path_exclude_check_clear(struct path_exclude_check *);
+extern struct exclude *last_exclude_matching_path(struct path_exclude_check *, const char *,
+ int namelen, int *dtype);
extern int is_path_excluded(struct path_exclude_check *, const char *, int namelen, int *dtype);