Thread (7 messages) 7 messages, 5 authors, 2018-12-21

Re: [PATCH] git: add -N as a short option for --no-pager

From: Phillip Wood <hidden>
Date: 2018-04-25 09:21:42

On 24/04/18 17:59, Johannes Sixt wrote:
In modern setups, less, the pager, uses alternate screen to show
the content. When it is closed, it switches back to the original
screen, and all content is gone.
Are you setting LESS explicitly in the environment?

 From the git config man page:
When the LESS environment variable is unset, Git sets it to FRX (if LESS 
environment variable is set, Git does not change it at all).

 From the less man page the X option:
Disables  sending the termcap initialization and deinitialization 
strings to the terminal.  This is sometimes desirable if the 
deinitialization string does something unnecessary, like clearing the 
screen.

So with the default setup the output should remain on the screen.

Best Wishes

Phillip

quoted hunk ↗ jump to hunk
It is not uncommon to request that the output remains visible in
the terminal. For this, the option --no-pager can be used. But
it is a bit cumbersome to type, even when command completion is
available. Provide a short option, -N, to make the option easier
accessible.

Signed-off-by: Johannes Sixt <redacted>
---
  Documentation/git.txt | 3 ++-
  git.c                 | 4 ++--
  2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/Documentation/git.txt b/Documentation/git.txt
index 4767860e72..17b50b0dc6 100644
--- a/Documentation/git.txt
+++ b/Documentation/git.txt
@@ -11,7 +11,7 @@ SYNOPSIS
  [verse]
  'git' [--version] [--help] [-C <path>] [-c <name>=<value>]
      [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
-    [-p|--paginate|--no-pager] [--no-replace-objects] [--bare]
+    [-p|--paginate|-N|--no-pager] [--no-replace-objects] [--bare]
      [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
      [--super-prefix=<path>]
      <command> [<args>]
@@ -103,6 +103,7 @@ foo.bar= ...`) sets `foo.bar` to the empty string which `git config
  	configuration options (see the "Configuration Mechanism" section
  	below).
  
+-N::
  --no-pager::
  	Do not pipe Git output into a pager.
  
diff --git a/git.c b/git.c
index ceaa58ef40..9e2d78f442 100644
--- a/git.c
+++ b/git.c
@@ -7,7 +7,7 @@
  const char git_usage_string[] =
  	N_("git [--version] [--help] [-C <path>] [-c <name>=<value>]\n"
  	   "           [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]\n"
-	   "           [-p | --paginate | --no-pager] [--no-replace-objects] [--bare]\n"
+	   "           [-p | --paginate | -N | --no-pager] [--no-replace-objects] [--bare]\n"
  	   "           [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]\n"
  	   "           <command> [<args>]");
  
@@ -81,7 +81,7 @@ static int handle_options(const char ***argv, int *argc, int *envchanged)
  			exit(0);
  		} else if (!strcmp(cmd, "-p") || !strcmp(cmd, "--paginate")) {
  			use_pager = 1;
-		} else if (!strcmp(cmd, "--no-pager")) {
+		} else if (!strcmp(cmd, "-N") || !strcmp(cmd, "--no-pager")) {
  			use_pager = 0;
  			if (envchanged)
  				*envchanged = 1;
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help