ll-merge.c: remove implicit dependency on the_index
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
5adbb403c2
commit
32eaa46883
17
ll-merge.c
17
ll-merge.c
@ -336,10 +336,10 @@ static const struct ll_merge_driver *find_ll_merge_driver(const char *merge_attr
|
||||
return &ll_merge_drv[LL_TEXT_MERGE];
|
||||
}
|
||||
|
||||
static void normalize_file(mmfile_t *mm, const char *path)
|
||||
static void normalize_file(mmfile_t *mm, const char *path, struct index_state *istate)
|
||||
{
|
||||
struct strbuf strbuf = STRBUF_INIT;
|
||||
if (renormalize_buffer(&the_index, path, mm->ptr, mm->size, &strbuf)) {
|
||||
if (renormalize_buffer(istate, path, mm->ptr, mm->size, &strbuf)) {
|
||||
free(mm->ptr);
|
||||
mm->size = strbuf.len;
|
||||
mm->ptr = strbuf_detach(&strbuf, NULL);
|
||||
@ -351,6 +351,7 @@ int ll_merge(mmbuffer_t *result_buf,
|
||||
mmfile_t *ancestor, const char *ancestor_label,
|
||||
mmfile_t *ours, const char *our_label,
|
||||
mmfile_t *theirs, const char *their_label,
|
||||
struct index_state *istate,
|
||||
const struct ll_merge_options *opts)
|
||||
{
|
||||
static struct attr_check *check;
|
||||
@ -363,15 +364,15 @@ int ll_merge(mmbuffer_t *result_buf,
|
||||
opts = &default_opts;
|
||||
|
||||
if (opts->renormalize) {
|
||||
normalize_file(ancestor, path);
|
||||
normalize_file(ours, path);
|
||||
normalize_file(theirs, path);
|
||||
normalize_file(ancestor, path, istate);
|
||||
normalize_file(ours, path, istate);
|
||||
normalize_file(theirs, path, istate);
|
||||
}
|
||||
|
||||
if (!check)
|
||||
check = attr_check_initl("merge", "conflict-marker-size", NULL);
|
||||
|
||||
if (!git_check_attr(&the_index, path, check)) {
|
||||
if (!git_check_attr(istate, path, check)) {
|
||||
ll_driver_name = check->items[0].value;
|
||||
if (check->items[1].value) {
|
||||
marker_size = atoi(check->items[1].value);
|
||||
@ -391,14 +392,14 @@ int ll_merge(mmbuffer_t *result_buf,
|
||||
opts, marker_size);
|
||||
}
|
||||
|
||||
int ll_merge_marker_size(const char *path)
|
||||
int ll_merge_marker_size(struct index_state *istate, const char *path)
|
||||
{
|
||||
static struct attr_check *check;
|
||||
int marker_size = DEFAULT_CONFLICT_MARKER_SIZE;
|
||||
|
||||
if (!check)
|
||||
check = attr_check_initl("conflict-marker-size", NULL);
|
||||
if (!git_check_attr(&the_index, path, check) && check->items[0].value) {
|
||||
if (!git_check_attr(istate, path, check) && check->items[0].value) {
|
||||
marker_size = atoi(check->items[0].value);
|
||||
if (marker_size <= 0)
|
||||
marker_size = DEFAULT_CONFLICT_MARKER_SIZE;
|
||||
|
Reference in New Issue
Block a user