X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=dir.h;h=817c674da1e017cffea9dddae672f9125aca8475;hb=8503ee4394dd47af136019bd8da53e5adec17e5d;hp=550551ab25372c1898ba790e973808ccf0450924;hpb=f8a9d4287277ed15d3f0d61004f4510c59f1f392;p=git.git diff --git a/dir.h b/dir.h index 550551ab2..817c674da 100644 --- a/dir.h +++ b/dir.h @@ -13,7 +13,9 @@ struct dir_entry { - int len; + unsigned int ignored : 1; + unsigned int ignored_dir : 1; + unsigned int len : 30; char name[FLEX_ARRAY]; /* more */ }; @@ -31,7 +33,8 @@ struct dir_struct { int nr, alloc; unsigned int show_ignored:1, show_other_directories:1, - hide_empty_directories:1; + hide_empty_directories:1, + no_dirlinks:1; struct dir_entry **entries; /* Exclude info */ @@ -40,9 +43,13 @@ struct dir_struct { }; extern int common_prefix(const char **pathspec); + +#define MATCHED_RECURSIVELY 1 +#define MATCHED_FNMATCH 2 +#define MATCHED_EXACTLY 3 extern int match_pathspec(const char **pathspec, const char *name, int namelen, int prefix, char *seen); -extern int read_directory(struct dir_struct *, const char *path, const char *base, int baselen); +extern int read_directory(struct dir_struct *, const char *path, const char *base, int baselen, const char **pathspec); extern int push_exclude_per_directory(struct dir_struct *, const char *, int); extern void pop_exclude_per_directory(struct dir_struct *, int); @@ -51,5 +58,6 @@ extern void add_excludes_from_file(struct dir_struct *, const char *fname); extern void add_exclude(const char *string, const char *base, int baselen, struct exclude_list *which); extern int file_exists(const char *); +extern struct dir_entry *dir_add_name(struct dir_struct *dir, const char *pathname, int len); #endif