line |
true |
false |
branch |
26
|
260 |
0 |
if (!pathspec || !pathspec->count || |
31
|
151 |
26 |
for (scan = prefix.ptr; *scan; ++scan) { |
32
|
10 |
141 |
if (git__iswildcard(*scan) && |
|
9 |
1 |
if (git__iswildcard(*scan) && |
33
|
0 |
9 |
(scan == prefix.ptr || (*(scan - 1) != '\\'))) |
38
|
4 |
32 |
if (prefix.size <= 0) { |
53
|
0 |
316 |
if (pathspec == NULL) |
56
|
74 |
242 |
for (i = 0; i < pathspec->count; ++i) { |
59
|
74 |
0 |
if (str && str[0]) |
|
74 |
0 |
if (str && str[0]) |
74
|
242 |
74 |
if (git_pathspec_is_empty(strspec)) |
77
|
0 |
74 |
if (git_vector_init(vspec, strspec->count, NULL) < 0) |
80
|
84 |
74 |
for (i = 0; i < strspec->count; ++i) { |
84
|
0 |
84 |
if (!match) |
90
|
0 |
84 |
if (ret == GIT_ENOTFOUND) { |
93
|
0 |
84 |
} else if (ret < 0) { |
98
|
0 |
84 |
if (git_vector_insert(vspec, match) < 0) |
122
|
0 |
40 |
if (disable_fnmatch) |
124
|
3 |
37 |
else if (casefold) |
129
|
3 |
37 |
if (casefold) { |
145
|
57 |
0 |
if (result == WM_NOMATCH) |
148
|
57 |
0 |
if (ctxt->wildmatch_flags >= 0 && result == WM_NOMATCH) |
|
40 |
17 |
if (ctxt->wildmatch_flags >= 0 && result == WM_NOMATCH) |
152
|
19 |
38 |
if (result == WM_NOMATCH && |
|
9 |
10 |
if (result == WM_NOMATCH && |
153
|
3 |
6 |
(match->flags & GIT_ATTR_FNMATCH_HASWILD) == 0 && |
154
|
1 |
2 |
ctxt->strncomp(path, match->pattern, match->length) == 0 && |
161
|
18 |
39 |
if (result == WM_NOMATCH && |
|
0 |
18 |
if (result == WM_NOMATCH && |
162
|
0 |
0 |
(match->flags & GIT_ATTR_FNMATCH_NEGATIVE) != 0 && |
163
|
0 |
0 |
*path == '!' && |
164
|
0 |
0 |
ctxt->strncomp(path + 1, match->pattern, match->length) == 0 && |
165
|
0 |
0 |
(!path[match->length + 1] || path[match->length + 1] == '/')) |
168
|
37 |
20 |
if (result == 0) |
184
|
55 |
13 |
git_vector_foreach(vspec, i, match) { |
185
|
55 |
0 |
if (path0 && (result = pathspec_match_one(match, ctxt, path0)) >= 0) |
|
37 |
18 |
if (path0 && (result = pathspec_match_one(match, ctxt, path0)) >= 0) |
187
|
0 |
18 |
if (path1 && (result = pathspec_match_one(match, ctxt, path1)) >= 0) |
|
0 |
0 |
if (path1 && (result = pathspec_match_one(match, ctxt, path1)) >= 0) |
208
|
651 |
65 |
if (matched_pathspec) |
210
|
0 |
716 |
if (matched_at) |
213
|
716 |
0 |
if (!vspec || !vspec->length) |
|
687 |
29 |
if (!vspec || !vspec->length) |
219
|
19 |
10 |
if (result >= 0) { |
220
|
18 |
1 |
if (matched_pathspec) { |
225
|
0 |
19 |
if (matched_at) |
241
|
20 |
0 |
if ((error = git_pool_init(&ps->pool, 1)) < 0 || |
|
0 |
20 |
if ((error = git_pool_init(&ps->pool, 1)) < 0 || |
260
|
0 |
7 |
GIT_ERROR_CHECK_ALLOC(ps); |
262
|
0 |
7 |
if ((error = git_pathspec__init(ps, pathspec)) < 0) { |
280
|
0 |
18 |
if (!ps) |
282
|
7 |
11 |
GIT_REFCOUNT_DEC(ps, pathspec_free); |
|
7 |
0 |
GIT_REFCOUNT_DEC(ps, pathspec_free); |
291
|
0 |
0 |
GIT_ASSERT_ARG(ps); |
292
|
0 |
0 |
GIT_ASSERT_ARG(path); |
300
|
0 |
11 |
if (!m) |
316
|
0 |
11 |
if (!m) |
319
|
0 |
11 |
if (git_pool_init(&m->pool, 1) < 0) |
335
|
9 |
9 |
if (!git_bitvec_get(used, pos)) { |
353
|
0 |
2 |
if (path1 == path0) |
356
|
2 |
2 |
for (; start < patterns->length; ++start) { |
359
|
0 |
2 |
if (git_bitvec_get(used, start)) |
362
|
2 |
0 |
if (path0 && pathspec_match_one(pat, ctxt, path0) > 0) |
|
0 |
2 |
if (path0 && pathspec_match_one(pat, ctxt, path0) > 0) |
364
|
0 |
2 |
else if (path1 && pathspec_match_one(pat, ctxt, path1) > 0) |
|
0 |
0 |
else if (path1 && pathspec_match_one(pat, ctxt, path1) > 0) |
381
|
3 |
2 |
for (pos = 0; pos < patterns->length; ++pos) { |
382
|
1 |
2 |
if (git_bitvec_get(used, pos)) |
385
|
2 |
0 |
if ((failed = git_array_alloc(*failures)) == NULL) |
|
2 |
0 |
if ((failed = git_array_alloc(*failures)) == NULL) |
|
0 |
2 |
if ((failed = git_array_alloc(*failures)) == NULL) |
390
|
0 |
2 |
if ((*failed = git_pool_strdup(pool, pat->pattern)) == NULL) |
408
|
11 |
0 |
bool find_failures = out && (flags & GIT_PATHSPEC_FIND_FAILURES) != 0; |
|
3 |
8 |
bool find_failures = out && (flags & GIT_PATHSPEC_FIND_FAILURES) != 0; |
409
|
11 |
0 |
bool failures_only = !out || (flags & GIT_PATHSPEC_FAILURES_ONLY) != 0; |
|
0 |
11 |
bool failures_only = !out || (flags & GIT_PATHSPEC_FAILURES_ONLY) != 0; |
415
|
0 |
11 |
if (git_bitvec_init(&used_patterns, patterns->length) < 0) |
418
|
11 |
0 |
if (out) { |
420
|
0 |
11 |
GIT_ERROR_CHECK_ALLOC(m); |
423
|
0 |
11 |
if ((error = git_iterator_reset_range(iter, ps->prefix, ps->prefix)) < 0) |
426
|
6 |
5 |
if (git_iterator_type(iter) == GIT_ITERATOR_WORKDIR && |
|
0 |
6 |
if (git_iterator_type(iter) == GIT_ITERATOR_WORKDIR && |
435
|
21 |
11 |
while (!(error = git_iterator_advance(&entry, iter))) { |
441
|
3 |
18 |
if (result < 0) |
445
|
0 |
18 |
if (!result) { |
452
|
0 |
0 |
git_iterator_current_is_ignored(iter) && |
461
|
4 |
14 |
if (find_failures && used_ct < patterns->length) |
|
2 |
2 |
if (find_failures && used_ct < patterns->length) |
466
|
18 |
0 |
if (failures_only || !out) { |
|
0 |
18 |
if (failures_only || !out) { |
467
|
0 |
0 |
if (used_ct == patterns->length) |
473
|
8 |
10 |
if ((file = (char **)git_array_alloc(m->matches)) == NULL || |
|
8 |
0 |
if ((file = (char **)git_array_alloc(m->matches)) == NULL || |
480
|
11 |
0 |
if (error < 0 && error != GIT_ITEROVER) |
|
0 |
11 |
if (error < 0 && error != GIT_ITEROVER) |
485
|
3 |
8 |
if (find_failures && used_ct < patterns->length && |
|
2 |
1 |
if (find_failures && used_ct < patterns->length && |
|
0 |
2 |
if (find_failures && used_ct < patterns->length && |
491
|
1 |
10 |
if ((flags & GIT_PATHSPEC_NO_MATCH_ERROR) != 0 && !found_files) { |
|
1 |
0 |
if ((flags & GIT_PATHSPEC_NO_MATCH_ERROR) != 0 && !found_files) { |
499
|
1 |
10 |
if (error < 0) { |
501
|
1 |
0 |
if (out) *out = NULL; |
511
|
3 |
8 |
if ((flags & GIT_PATHSPEC_IGNORE_CASE) != 0) |
513
|
0 |
8 |
else if ((flags & GIT_PATHSPEC_USE_CASE) != 0) |
529
|
0 |
6 |
GIT_ASSERT_ARG(repo); |
533
|
6 |
0 |
if (!(error = git_iterator_for_workdir(&iter, repo, NULL, NULL, &iter_opts))) { |
551
|
0 |
1 |
GIT_ASSERT_ARG(index); |
555
|
1 |
0 |
if (!(error = git_iterator_for_index(&iter, git_index_owner(index), index, &iter_opts))) { |
573
|
0 |
4 |
GIT_ASSERT_ARG(tree); |
577
|
4 |
0 |
if (!(error = git_iterator_for_tree(&iter, tree, &iter_opts))) { |
595
|
0 |
0 |
bool find_failures = out && (flags & GIT_PATHSPEC_FIND_FAILURES) != 0; |
|
0 |
0 |
bool find_failures = out && (flags & GIT_PATHSPEC_FIND_FAILURES) != 0; |
596
|
0 |
0 |
bool failures_only = !out || (flags & GIT_PATHSPEC_FAILURES_ONLY) != 0; |
|
0 |
0 |
bool failures_only = !out || (flags & GIT_PATHSPEC_FAILURES_ONLY) != 0; |
601
|
0 |
0 |
GIT_ASSERT_ARG(diff); |
603
|
0 |
0 |
if (git_bitvec_init(&used_patterns, patterns->length) < 0) |
606
|
0 |
0 |
if (out) { |
608
|
0 |
0 |
GIT_ERROR_CHECK_ALLOC(m); |
615
|
0 |
0 |
git_vector_foreach(&diff->deltas, i, delta) { |
621
|
0 |
0 |
if (result < 0) |
628
|
0 |
0 |
if (!result) |
634
|
0 |
0 |
if (find_failures && used_ct < patterns->length) |
|
0 |
0 |
if (find_failures && used_ct < patterns->length) |
640
|
0 |
0 |
if (failures_only || !out) { |
|
0 |
0 |
if (failures_only || !out) { |
641
|
0 |
0 |
if (used_ct == patterns->length) |
647
|
0 |
0 |
if (!(match = (const git_diff_delta **)git_array_alloc(m->matches))) { |
|
0 |
0 |
if (!(match = (const git_diff_delta **)git_array_alloc(m->matches))) { |
|
0 |
0 |
if (!(match = (const git_diff_delta **)git_array_alloc(m->matches))) { |
656
|
0 |
0 |
if (find_failures && used_ct < patterns->length && |
|
0 |
0 |
if (find_failures && used_ct < patterns->length && |
|
0 |
0 |
if (find_failures && used_ct < patterns->length && |
662
|
0 |
0 |
if ((flags & GIT_PATHSPEC_NO_MATCH_ERROR) != 0 && !found_deltas) { |
|
0 |
0 |
if ((flags & GIT_PATHSPEC_NO_MATCH_ERROR) != 0 && !found_deltas) { |
670
|
0 |
0 |
if (error < 0) { |
672
|
0 |
0 |
if (out) *out = NULL; |
680
|
10 |
0 |
if (m) |
687
|
15 |
0 |
return m ? git_array_size(m->matches) : 0; |
693
|
12 |
0 |
if (!m || m->datatype != PATHSPEC_DATATYPE_STRINGS || |
|
12 |
0 |
if (!m || m->datatype != PATHSPEC_DATATYPE_STRINGS || |
|
0 |
12 |
if (!m || m->datatype != PATHSPEC_DATATYPE_STRINGS || |
697
|
12 |
0 |
return *((const char **)git_array_get(m->matches, pos)); |
703
|
0 |
0 |
if (!m || m->datatype != PATHSPEC_DATATYPE_DIFF || |
|
0 |
0 |
if (!m || m->datatype != PATHSPEC_DATATYPE_DIFF || |
|
0 |
0 |
if (!m || m->datatype != PATHSPEC_DATATYPE_DIFF || |
707
|
0 |
0 |
return *((const git_diff_delta **)git_array_get(m->matches, pos)); |
713
|
4 |
0 |
return m ? git_array_size(m->failures) : 0; |
719
|
1 |
0 |
char **entry = m ? git_array_get(m->failures, pos) : NULL; |
|
1 |
0 |
char **entry = m ? git_array_get(m->failures, pos) : NULL; |
721
|
1 |
0 |
return entry ? *entry : NULL; |