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>
This commit is contained in:

committed by
Junio C Hamano

parent
f4cd69a674
commit
a35341a86e
3
dir.h
3
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);
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user