git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] Replace git --paginate by git --pager[=PAGER_CMD].

From
Matthieu Moy <matthieu.moy@imag.fr>
Date
Aug 21, 2007, 08:37 UTC
Message-ID
<11876854283229-git-send-email-Matthieu.Moy@imag.fr>
In-Reply-To
<fadhkv$amj$2@sea.gmane.org>

The previous one was -p|--paginate, but doesn't accept a natural negation. This patch changes it to -p|--pager|--pager=PAGER_CMD, which makes the negation --no-pager more natural, and provides a simple way to override the pager command (git --pager=CMD is equivalent to GIT_PAGER=CMD git with most shells).

--paginate is kept as a backward-compatibility, deprecated option.
Suggested-by: David Kastrup <dak@gnu.org>
Idea-acked-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
---
 Documentation/git.txt |    8 +++++---
 git.c                 |   16 ++++++++++++++--
 2 files changed, 19 insertions(+), 5 deletions(-)
diff --git a/Documentation/git.txt b/Documentation/git.txt
index 3b0d530..444823d 100644
--- a/Documentation/git.txt
+++ b/Documentation/git.txt
@@ -10,7 +10,7 @@ SYNOPSIS
 --------
 [verse]
 'git' [--version] [--exec-path[=GIT_EXEC_PATH]]
-    [-p|--paginate|--no-pager]
+    [-p|--pager[=PAGER_CMD]|--no-pager]
     [--bare] [--git-dir=GIT_DIR] [--work-tree=GIT_WORK_TREE]
     [--help] COMMAND [ARGS]
 
@@ -101,8 +101,10 @@ OPTIONS
 	environment variable. If no path is given 'git' will print
 	the current setting and then exit.
 
--p|--paginate::
-	Pipe all output into 'less' (or if set, $PAGER).
+-p|--pager[=PAGER_CMD]::
+	Pipe all output into 'less' (or if set, PAGER_CMD,
+	`$GIT_PAGER`, or `$PAGER`, in this order of preference).
+	--paginate is provided as a deprecated alias for -p.
 
 --no-pager::
 	Do not pipe git output into a pager.
diff --git a/git.c b/git.c
index c46691e..4c626b5 100644
--- a/git.c
+++ b/git.c
@@ -4,7 +4,9 @@
 #include "quote.h"
 
 const char git_usage_string[] =
-	"git [--version] [--exec-path[=GIT_EXEC_PATH]] [-p|--paginate|--no-pager] [--bare] [--git-dir=GIT_DIR] [--work-tree=GIT_WORK_TREE] [--help] COMMAND [ARGS]";
+	"git [--version] [--exec-path[=GIT_EXEC_PATH]]\n"
+        "	[-p|--pager[=PAGER_CMD]|--no-pager] [--bare]\n"
+        "	[--git-dir=GIT_DIR] [--work-tree=GIT_WORK_TREE] [--help] COMMAND [ARGS]";
 
 static void prepend_to_path(const char *dir, int len)
 {
@@ -56,8 +58,18 @@ static int handle_options(const char*** argv, int* argc, int* envchanged)
 				puts(git_exec_path());
 				exit(0);
 			}
-		} else if (!strcmp(cmd, "-p") || !strcmp(cmd, "--paginate")) {
+		} else if (!strcmp(cmd, "-p") || 
+                           /* 
+                            * Deprecated, but kept for backward
+                            * compatibility
+                            */
+                           !strcmp(cmd, "--paginate")) {
 			setup_pager();
+                } else if (!prefixcmp(cmd, "--pager")) {
+			cmd += 7;
+			if (*cmd == '=')
+				setenv("GIT_PAGER", cmd+1, 1);
+                        setup_pager();
 		} else if (!strcmp(cmd, "--no-pager")) {
 			setenv("GIT_PAGER", "cat", 1);
 			if (envchanged)
-- 
1.5.3.rc5.17.g1cd0d-dirty
Previous: Jakub NarebskiNext: Johannes Schindelin
Message 11 of 15 in “[RFC] Clean way to disable pager”
  1. Matthieu MoyAug 19, 2007
  2. Matthieu MoyAug 19, 2007
  3. Linus TorvaldsAug 19, 2007
  4. Brian GernhardtAug 19, 2007
  5. Junio C HamanoAug 19, 2007
  6. Matthieu MoyAug 19, 2007
  7. Adam RobenAug 19, 2007
  8. David KastrupAug 19, 2007
  9. Matthieu MoyAug 20, 2007
  10. Jakub NarebskiAug 21, 2007
  11. Replace git --paginate by git --pager[=PAGER_CMD].Matthieu Moy, Aug 21, 2007
  12. Johannes SchindelinAug 21, 2007
  13. Matthieu MoyAug 21, 2007
  14. David KastrupAug 21, 2007
  15. Alex RiesenAug 19, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.