Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
dir: convert last_exclude_matching_from_list to take an index
author
Brandon Williams
<bmwill@google.com>
Fri, 5 May 2017 19:53:26 +0000
(12:53 -0700)
committer
Junio 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
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
9e58bec
)
diff --git
a/dir.c
b/dir.c
index a508e8076ddc3ff3aef262512b1b9b77a4357d2c..077b756c2088a691090c6fa8fed36bce4b4cccc9 100644
(file)
--- a/
dir.c
+++ b/
dir.c
@@
-961,7
+961,8
@@
static struct exclude *last_exclude_matching_from_list(const char *pathname,
int pathlen,
const char *basename,
int *dtype,
int pathlen,
const char *basename,
int *dtype,
- struct exclude_list *el)
+ struct exclude_list *el,
+ struct index_state *istate)
{
struct exclude *exc = NULL; /* undecided */
int i;
{
struct exclude *exc = NULL; /* undecided */
int i;
@@
-976,7
+977,7
@@
static struct exclude *last_exclude_matching_from_list(const char *pathname,
if (x->flags & EXC_FLAG_MUSTBEDIR) {
if (*dtype == DT_UNKNOWN)
if (x->flags & EXC_FLAG_MUSTBEDIR) {
if (*dtype == DT_UNKNOWN)
- *dtype = get_dtype(NULL,
&the_index
, pathname, pathlen);
+ *dtype = get_dtype(NULL,
istate
, pathname, pathlen);
if (*dtype != DT_DIR)
continue;
}
if (*dtype != DT_DIR)
continue;
}
@@
-1012,13
+1013,14
@@
int is_excluded_from_list(const char *pathname,
struct exclude_list *el)
{
struct exclude *exclude;
struct exclude_list *el)
{
struct exclude *exclude;
- exclude = last_exclude_matching_from_list(pathname, pathlen, basename, dtype, el);
+ exclude = last_exclude_matching_from_list(pathname, pathlen, basename, dtype, el
, &the_index
);
if (exclude)
return exclude->flags & EXC_FLAG_NEGATIVE ? 0 : 1;
return -1; /* undecided */
}
static struct exclude *last_exclude_matching_from_lists(struct dir_struct *dir,
if (exclude)
return exclude->flags & EXC_FLAG_NEGATIVE ? 0 : 1;
return -1; /* undecided */
}
static struct exclude *last_exclude_matching_from_lists(struct dir_struct *dir,
+ struct index_state *istate,
const char *pathname, int pathlen, const char *basename,
int *dtype_p)
{
const char *pathname, int pathlen, const char *basename,
int *dtype_p)
{
@@
-1030,7
+1032,7
@@
static struct exclude *last_exclude_matching_from_lists(struct dir_struct *dir,
for (j = group->nr - 1; j >= 0; j--) {
exclude = last_exclude_matching_from_list(
pathname, pathlen, basename, dtype_p,
for (j = group->nr - 1; j >= 0; j--) {
exclude = last_exclude_matching_from_list(
pathname, pathlen, basename, dtype_p,
- &group->el[j]);
+ &group->el[j]
, istate
);
if (exclude)
return exclude;
}
if (exclude)
return exclude;
}
@@
-1121,6
+1123,7
@@
static void prep_exclude(struct dir_struct *dir, const char *base, int baselen)
int dt = DT_DIR;
dir->basebuf.buf[stk->baselen - 1] = 0;
dir->exclude = last_exclude_matching_from_lists(dir,
int dt = DT_DIR;
dir->basebuf.buf[stk->baselen - 1] = 0;
dir->exclude = last_exclude_matching_from_lists(dir,
+ &the_index,
dir->basebuf.buf, stk->baselen - 1,
dir->basebuf.buf + current, &dt);
dir->basebuf.buf[stk->baselen - 1] = '/';
dir->basebuf.buf, stk->baselen - 1,
dir->basebuf.buf + current, &dt);
dir->basebuf.buf[stk->baselen - 1] = '/';
@@
-1209,7
+1212,7
@@
struct exclude *last_exclude_matching(struct dir_struct *dir,
if (dir->exclude)
return dir->exclude;
if (dir->exclude)
return dir->exclude;
- return last_exclude_matching_from_lists(dir, pathname, pathlen,
+ return last_exclude_matching_from_lists(dir,
&the_index,
pathname, pathlen,
basename, dtype_p);
}
basename, dtype_p);
}