diff --git a/builtin-diff.c b/builtin-diff.c index faaa85a1d45ce6c5f398a44b1241f6325430918b..7ffea975059f9e13b07ca680e6707ffc14973f90 100644 --- a/builtin-diff.c +++ b/builtin-diff.c @@ -296,7 +296,8 @@ int cmd_diff(int argc, const char **argv, const char *prefix) * If the user asked for our exit code then don't start a * pager or we would end up reporting its exit code instead. */ - if (!DIFF_OPT_TST(&rev.diffopt, EXIT_WITH_STATUS)) + if (!DIFF_OPT_TST(&rev.diffopt, EXIT_WITH_STATUS) && + check_pager_config("diff") != 0) setup_pager(); /* diff --git a/builtin.h b/builtin.h index 0e605d4f4aa748c0b3c34aeb75a1b5a765114b12..f3502d305e4f65e9707fe8b738f64be6e49f7f84 100644 --- a/builtin.h +++ b/builtin.h @@ -18,6 +18,7 @@ extern int fmt_merge_msg(int merge_summary, struct strbuf *in, struct strbuf *out); extern int commit_tree(const char *msg, unsigned char *tree, struct commit_list *parents, unsigned char *ret); +extern int check_pager_config(const char *cmd); extern int cmd_add(int argc, const char **argv, const char *prefix); extern int cmd_annotate(int argc, const char **argv, const char *prefix);