dir: convert is_excluded_from_list to take an index
authorBrandon Williams <bmwill@google.com>
Fri, 5 May 2017 19:53:27 +0000 (12:53 -0700)
committerJunio C Hamano <gitster@pobox.com>
Sat, 6 May 2017 10:15:39 +0000 (19:15 +0900)
Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
dir.c
dir.h
unpack-trees.c
diff --git a/dir.c b/dir.c
index 077b756c2088a691090c6fa8fed36bce4b4cccc9..497a2db85c1beac383b78fd787aa0fffecb2ba21 100644 (file)
--- a/dir.c
+++ b/dir.c
@@ -1010,10 +1010,11 @@ static struct exclude *last_exclude_matching_from_list(const char *pathname,
  */
 int is_excluded_from_list(const char *pathname,
                          int pathlen, const char *basename, int *dtype,
-                         struct exclude_list *el)
+                         struct exclude_list *el, struct index_state *istate)
 {
        struct exclude *exclude;
-       exclude = last_exclude_matching_from_list(pathname, pathlen, basename, dtype, el, &the_index);
+       exclude = last_exclude_matching_from_list(pathname, pathlen, basename,
+                                                 dtype, el, istate);
        if (exclude)
                return exclude->flags & EXC_FLAG_NEGATIVE ? 0 : 1;
        return -1; /* undecided */
diff --git a/dir.h b/dir.h
index a9f80998339ebc1f510c041809f7beaddaec01ff..64254c7e7479a82e668545d5321047ecdb576ead 100644 (file)
--- a/dir.h
+++ b/dir.h
@@ -217,8 +217,10 @@ extern int within_depth(const char *name, int namelen, int depth, int max_depth)
 extern int fill_directory(struct dir_struct *dir, const struct pathspec *pathspec);
 extern int read_directory(struct dir_struct *, const char *path, int len, const struct pathspec *pathspec);
 
-extern int is_excluded_from_list(const char *pathname, int pathlen, const char *basename,
-                                int *dtype, struct exclude_list *el);
+extern int is_excluded_from_list(const char *pathname, int pathlen,
+                                const char *basename, int *dtype,
+                                struct exclude_list *el,
+                                struct index_state *istate);
 struct dir_entry *dir_add_ignored(struct dir_struct *dir,
                                  struct index_state *istate,
                                  const char *pathname, int len);
index aa15111fefc8ca333edeeeb3ac77a8b946e4c6a5..df9f975d0137695d427021dbabf86b3d0ea0416d 100644 (file)
@@ -1068,7 +1068,7 @@ static int clear_ce_flags_dir(struct cache_entry **cache, int nr,
        struct cache_entry **cache_end;
        int dtype = DT_DIR;
        int ret = is_excluded_from_list(prefix->buf, prefix->len,
-                                       basename, &dtype, el);
+                                       basename, &dtype, el, &the_index);
        int rc;
 
        strbuf_addch(prefix, '/');
@@ -1171,7 +1171,7 @@ static int clear_ce_flags_1(struct cache_entry **cache, int nr,
                /* Non-directory */
                dtype = ce_to_dtype(ce);
                ret = is_excluded_from_list(ce->name, ce_namelen(ce),
-                                           name, &dtype, el);
+                                           name, &dtype, el, &the_index);
                if (ret < 0)
                        ret = defval;
                if (ret > 0)