Thread (2 messages) flat view 2 messages, 2 authors, 2016-06-15
DORMANTno replies

[PATCH 2/2] git-help: add "web_or_man" and "web_or_info" config vars.

From: Christian Couder <hidden>
Date: 2016-06-15 22:43:58
Subsystem: documentation, the rest · Maintainers: Jonathan Corbet, Linus Torvalds

These configuration variables can be used when you want to
use a web browser if DISPLAY is set and "man" or "info"
otherwise.

Signed-off-by: Christian Couder <redacted>
---
 Documentation/git-help.txt |   15 +++++++++++----
 help.c                     |   10 ++++++++++
 2 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/Documentation/git-help.txt b/Documentation/git-help.txt
index af5e5cb..c790584 100644
--- a/Documentation/git-help.txt
+++ b/Documentation/git-help.txt
@@ -24,10 +24,17 @@ up. The 'man' program is used by default for this purpose, but this
 can be overriden by other options.
 
 If no command line option is passed, the 'help.format' configuration
-variable will be checked. Supported values for this variable are
-"man", "info" and "web" (or "html" as a synonym to the latter). This
-makes git-help behave as if a command line option with the same long
-name as been passed to it.
+variable will be checked. The following values are supported for this
+variable; they make 'git-help' behave as their corresponding command
+line option:
+
+* "man" corresponds to '-m|--man',
+* "info" corresponds to '-i|--info',
+* "web" or "html" correspond to '-w|--web',
+* "web_or_man" corresponds to '-w|--web' if DISPLAY is set, '-m|--man'
+otherwise,
+* "web_or_info" corresponds to '-w|--web' if DISPLAY is set, '-i|--info'
+otherwise.
 
 Note that 'git --help ...' is identical as 'git help ...' because the
 former is internally converted into the latter.
diff --git a/help.c b/help.c
index af0a433..d46bc08 100644
--- a/help.c
+++ b/help.c
@@ -34,6 +34,16 @@ static void parse_help_format(const char *format)
 		help_format = web_format;
 		return;
 	}
+	if (!strcmp(format, "web_or_man")) {
+		char *display = getenv("DISPLAY");
+		help_format = display ? web_format : man_format;
+		return;
+	}
+	if (!strcmp(format, "web_or_info")) {
+		char *display = getenv("DISPLAY");
+		help_format = display ? web_format : info_format;
+		return;
+	}
 	die("unrecognized help format '%s'", format);
 }
 
-- 
1.5.3.7.2269.g4ae7
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help