replace: parse revision argument for -d
[gitweb.git] / diff.c
diff --git a/diff.c b/diff.c
index 7fef69d85c33faaaaf23cbff536ca0639ab2f1c6..e89a2015eb794616416cd02a8f87695efc28d4bd 100644 (file)
--- a/diff.c
+++ b/diff.c
@@ -4880,3 +4880,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();
+}