1265
struct cache_entry **cache, int nr,
1266
struct strbuf *prefix,
1267
int select_mask, int clear_mask,
1268
- struct pattern_list *pl, int defval);
1268
+ struct pattern_list *pl,
1269
+ enum pattern_match_result default_match);
1270
1271
/* Whole directory matching */
1272
static int clear_ce_flags_dir(struct index_state *istate,
1274
struct strbuf *prefix,
1275
char *basename,
1276
int select_mask, int clear_mask,
1276
- struct pattern_list *pl, int defval)
1277
+ struct pattern_list *pl,
1278
+ enum pattern_match_result default_match)
1279
{
1280
struct cache_entry **cache_end;
1281
int dtype = DT_DIR;
1280
- int ret = is_excluded_from_list(prefix->buf, prefix->len,
1281
- basename, &dtype, pl, istate);
1282
int rc;
1283
+ enum pattern_match_result ret;
1284
+ ret = path_matches_pattern_list(prefix->buf, prefix->len,
1285
+ basename, &dtype, pl, istate);
1286
1287
strbuf_addch(prefix, '/');
1288
1289
/* If undecided, use matching result of parent dir in defval */
1287
- if (ret < 0)
1288
- ret = defval;
1290
+ if (ret == UNDECIDED)
1291
+ ret = default_match;
1292
1293
for (cache_end = cache; cache_end != cache + nr; cache_end++) {
1294
struct cache_entry *ce = *cache_end;
1301
* with ret (iow, we know in advance the incl/excl
1302
* decision for the entire directory), clear flag here without
1303
* calling clear_ce_flags_1(). That function will call
1301
- * the expensive is_excluded_from_list() on every entry.
1304
+ * the expensive path_matches_pattern_list() on every entry.
1305
*/
1306
rc = clear_ce_flags_1(istate, cache, cache_end - cache,
1307
prefix,
1330
struct cache_entry **cache, int nr,
1331
struct strbuf *prefix,
1332
int select_mask, int clear_mask,
1330
- struct pattern_list *pl, int defval)
1333
+ struct pattern_list *pl,
1334
+ enum pattern_match_result default_match)
1335
{
1336
struct cache_entry **cache_end = cache + nr;
1337
1342
while(cache != cache_end) {
1343
struct cache_entry *ce = *cache;
1344
const char *name, *slash;
1341
- int len, dtype, ret;
1345
+ int len, dtype;
1346
+ enum pattern_match_result ret;
1347
1348
if (select_mask && !(ce->ce_flags & select_mask)) {
1349
cache++;
1367
prefix,
1368
prefix->buf + prefix->len - len,
1369
select_mask, clear_mask,
1365
- pl, defval);
1370
+ pl, default_match);
1371
1372
/* clear_c_f_dir eats a whole dir already? */
1373
if (processed) {
1379
strbuf_addch(prefix, '/');
1380
cache += clear_ce_flags_1(istate, cache, cache_end - cache,
1381
prefix,
1377
- select_mask, clear_mask, pl, defval);
1382
+ select_mask, clear_mask, pl,
1383
+ default_match);
1384
strbuf_setlen(prefix, prefix->len - len - 1);
1385
continue;
1386
}
1387
1388
/* Non-directory */
1389
dtype = ce_to_dtype(ce);
1384
- ret = is_excluded_from_list(ce->name, ce_namelen(ce),
1385
- name, &dtype, pl, istate);
1386
- if (ret < 0)
1387
- ret = defval;
1388
- if (ret > 0)
1390
+ ret = path_matches_pattern_list(ce->name,
1391
+ ce_namelen(ce),
1392
+ name, &dtype, pl, istate);
1393
+ if (ret == UNDECIDED)
1394
+ ret = default_match;
1395
+ if (ret == MATCHED)
1396
ce->ce_flags &= ~clear_mask;
1397
cache++;
1398
}