summaryrefslogtreecommitdiff
path: root/diff.c
diff options
context:
space:
mode:
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>2012-10-26 22:53:52 +0700
committerJeff King <peff@peff.net>2012-10-29 03:08:30 -0400
commit4914c9629c046f7f5abf4109ad756040f9ebe2bf (patch)
tree0e44c88fde1165895cd7d8538e505b2ad0eb12c1 /diff.c
parentefc7df454e9ec8b730fb2293c8549cec43de6bfa (diff)
downloadgit-4914c9629c046f7f5abf4109ad756040f9ebe2bf.tar.gz
Move setup_diff_pager to libgit.a
This is used by diff-no-index.c, part of libgit.a while it stays in builtin/diff.c. Move it to diff.c so that we won't get undefined reference if a program that uses libgit.a happens to pull it in. While at it, move check_pager from git.c to pager.c. It makes more sense there and pager.c is also part of libgit.a Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Jeff King <peff@peff.net>
Diffstat (limited to 'diff.c')
-rw-r--r--diff.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/diff.c b/diff.c
index 86e5f2a4a8..135ba0d654 100644
--- a/diff.c
+++ b/diff.c
@@ -4878,3 +4878,19 @@ size_t fill_textconv(struct userdiff_driver *driver,
return size;
}
+
+void setup_diff_pager(struct diff_options *opt)
+{
+ /*
+ * If the user asked for our exit code, then either they want --quiet
+ * or --exit-code. We should definitely not bother with a pager in the
+ * former case, as we will generate no output. Since we still properly
+ * report our exit code even when a pager is run, we _could_ run a
+ * pager with --exit-code. But since we have not done so historically,
+ * and because it is easy to find people oneline advising "git diff
+ * --exit-code" in hooks and other scripts, we do not do so.
+ */
+ if (!DIFF_OPT_TST(opt, EXIT_WITH_STATUS) &&
+ check_pager_config("diff") != 0)
+ setup_pager();
+}