1447
ident_to_git(dst->buf, dst->len, dst, ca.ident);
1448
}
1449
1450
-static int convert_to_working_tree_internal(const struct index_state *istate,
1451
- const char *path, const char *src,
1452
- size_t len, struct strbuf *dst,
1453
- int normalizing,
1454
- const struct checkout_metadata *meta,
1455
- struct delayed_checkout *dco)
1450
+static int convert_to_working_tree_ca_internal(const struct conv_attrs *ca,
1451
+ const char *path, const char *src,
1452
+ size_t len, struct strbuf *dst,
1453
+ int normalizing,
1454
+ const struct checkout_metadata *meta,
1455
+ struct delayed_checkout *dco)
1456
{
1457
int ret = 0, ret_filter = 0;
1458
- struct conv_attrs ca;
1459
-
1460
- convert_attrs(istate, &ca, path);
1458
1462
- ret |= ident_to_worktree(src, len, dst, ca.ident);
1459
+ ret |= ident_to_worktree(src, len, dst, ca->ident);
1460
if (ret) {
1461
src = dst->buf;
1462
len = dst->len;
1466
* is a smudge or process filter (even if the process filter doesn't
1467
* support smudge). The filters might expect CRLFs.
1468
*/
1472
- if ((ca.drv && (ca.drv->smudge || ca.drv->process)) || !normalizing) {
1473
- ret |= crlf_to_worktree(src, len, dst, ca.crlf_action);
1469
+ if ((ca->drv && (ca->drv->smudge || ca->drv->process)) || !normalizing) {
1470
+ ret |= crlf_to_worktree(src, len, dst, ca->crlf_action);
1471
if (ret) {
1472
src = dst->buf;
1473
len = dst->len;
1474
}
1475
}
1476
1480
- ret |= encode_to_worktree(path, src, len, dst, ca.working_tree_encoding);
1477
+ ret |= encode_to_worktree(path, src, len, dst, ca->working_tree_encoding);
1478
if (ret) {
1479
src = dst->buf;
1480
len = dst->len;
1481
}
1482
1483
ret_filter = apply_filter(
1487
- path, src, len, -1, dst, ca.drv, CAP_SMUDGE, meta, dco);
1488
- if (!ret_filter && ca.drv && ca.drv->required)
1489
- die(_("%s: smudge filter %s failed"), path, ca.drv->name);
1484
+ path, src, len, -1, dst, ca->drv, CAP_SMUDGE, meta, dco);
1485
+ if (!ret_filter && ca->drv && ca->drv->required)
1486
+ die(_("%s: smudge filter %s failed"), path, ca->drv->name);
1487
1488
return ret | ret_filter;
1489
}
1490
1494
-int async_convert_to_working_tree(const struct index_state *istate,
1495
- const char *path, const char *src,
1496
- size_t len, struct strbuf *dst,
1497
- const struct checkout_metadata *meta,
1498
- void *dco)
1491
+int async_convert_to_working_tree_ca(const struct conv_attrs *ca,
1492
+ const char *path, const char *src,
1493
+ size_t len, struct strbuf *dst,
1494
+ const struct checkout_metadata *meta,
1495
+ void *dco)
1496
{
1500
- return convert_to_working_tree_internal(istate, path, src, len, dst, 0, meta, dco);
1497
+ return convert_to_working_tree_ca_internal(ca, path, src, len, dst, 0,
1498
+ meta, dco);
1499
}
1500
1503
-int convert_to_working_tree(const struct index_state *istate,
1504
- const char *path, const char *src,
1505
- size_t len, struct strbuf *dst,
1506
- const struct checkout_metadata *meta)
1501
+int convert_to_working_tree_ca(const struct conv_attrs *ca,
1502
+ const char *path, const char *src,
1503
+ size_t len, struct strbuf *dst,
1504
+ const struct checkout_metadata *meta)
1505
{
1508
- return convert_to_working_tree_internal(istate, path, src, len, dst, 0, meta, NULL);
1506
+ return convert_to_working_tree_ca_internal(ca, path, src, len, dst, 0,
1507
+ meta, NULL);
1508
}
1509
1510
int renormalize_buffer(const struct index_state *istate, const char *path,
1511
const char *src, size_t len, struct strbuf *dst)
1512
{
1514
- int ret = convert_to_working_tree_internal(istate, path, src, len, dst, 1, NULL, NULL);
1513
+ struct conv_attrs ca;
1514
+ int ret;
1515
+
1516
+ convert_attrs(istate, &ca, path);
1517
+ ret = convert_to_working_tree_ca_internal(&ca, path, src, len, dst, 1,
1518
+ NULL, NULL);
1519
if (ret) {
1520
src = dst->buf;
1521
len = dst->len;