Skip to content

Commit a49b602

Browse files
committed
Merge branch 'y5/diff-pager' into seen
Delay setting up the pager in 'git diff' until after the diff contents itself is fully prepared. Will discard? * y5/diff-pager: diff: setup pager only before diff contents truly ready
2 parents 80e3a66 + d461aea commit a49b602

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

builtin/diff.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ static void builtin_diff_b_f(struct rev_info *revs,
108108
1, 0,
109109
blob[0]->path ? blob[0]->path : path,
110110
path);
111+
setup_diff_pager(&revs->diffopt);
111112
diffcore_std(&revs->diffopt);
112113
diff_flush(&revs->diffopt);
113114
}
@@ -132,6 +133,7 @@ static void builtin_diff_blobs(struct rev_info *revs,
132133
&blob[0]->item->oid, &blob[1]->item->oid,
133134
1, 1,
134135
blob_path(blob[0]), blob_path(blob[1]));
136+
setup_diff_pager(&revs->diffopt);
135137
diffcore_std(&revs->diffopt);
136138
diff_flush(&revs->diffopt);
137139
}
@@ -167,6 +169,7 @@ static void builtin_diff_index(struct rev_info *revs,
167169
} else if (repo_read_index(the_repository) < 0) {
168170
die_errno("repo_read_cache");
169171
}
172+
setup_diff_pager(&revs->diffopt);
170173
run_diff_index(revs, option);
171174
}
172175

@@ -204,6 +207,7 @@ static void builtin_diff_tree(struct rev_info *revs,
204207
oid[swap] = &ent0->item->oid;
205208
oid[1 - swap] = &ent1->item->oid;
206209
}
210+
setup_diff_pager(&revs->diffopt);
207211
diff_tree_oid(oid[0], oid[1], "", &revs->diffopt);
208212
log_tree_diff_flush(revs);
209213
}
@@ -230,6 +234,7 @@ static void builtin_diff_combined(struct rev_info *revs,
230234
if (i != first_non_parent)
231235
oid_array_append(&parents, &ent[i].item->oid);
232236
}
237+
setup_diff_pager(&revs->diffopt);
233238
diff_tree_combined(&ent[first_non_parent].item->oid, &parents, revs);
234239
oid_array_clear(&parents);
235240
}
@@ -286,6 +291,7 @@ static void builtin_diff_files(struct rev_info *revs, int argc, const char **arg
286291
0) < 0) {
287292
die_errno("repo_read_index_preload");
288293
}
294+
setup_diff_pager(&revs->diffopt);
289295
run_diff_files(revs, options);
290296
}
291297

@@ -526,8 +532,6 @@ int cmd_diff(int argc,
526532
rev.diffopt.flags.recursive = 1;
527533
rev.diffopt.rotate_to_strict = 1;
528534

529-
setup_diff_pager(&rev.diffopt);
530-
531535
/*
532536
* Do we have --cached and not have a pending object, then
533537
* default to HEAD by hand. Eek.

0 commit comments

Comments
 (0)