summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRomain Francoise <romain@orebokech.com>2008-08-29 17:00:43 +0200
committerJunio C Hamano <gitster@pobox.com>2008-08-29 21:46:33 -0700
commit5059a427804f9fefaf75dd1aa92cb620ce9219c7 (patch)
treeb1719659fd78857880c0b2d4f1a4824c20b15084
parent445cac18c015809a7fcb4a570d3c6571b1ddaf7d (diff)
downloadgit-5059a427804f9fefaf75dd1aa92cb620ce9219c7.tar.gz
builtin-help: fallback to GIT_MAN_VIEWER before man
In some situations it is useful to be able to switch viewers via the environment, e.g. in Emacs shell buffers. So check the GIT_MAN_VIEWER environment variable and try it before falling back to "man". Signed-off-by: Romain Francoise <romain@orebokech.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--Documentation/git-help.txt4
-rw-r--r--builtin-help.c3
2 files changed, 6 insertions, 1 deletions
diff --git a/Documentation/git-help.txt b/Documentation/git-help.txt
index f414583fc4..d9b9c34b3a 100644
--- a/Documentation/git-help.txt
+++ b/Documentation/git-help.txt
@@ -112,7 +112,9 @@ For example, this configuration:
will try to use konqueror first. But this may fail (for example if
DISPLAY is not set) and in that case emacs' woman mode will be tried.
-If everything fails the 'man' program will be tried anyway.
+If everything fails, or if no viewer is configured, the viewer specified
+in the GIT_MAN_VIEWER environment variable will be tried. If that
+fails too, the 'man' program will be tried anyway.
man.<tool>.path
~~~~~~~~~~~~~~~
diff --git a/builtin-help.c b/builtin-help.c
index 721038e4f5..64207cbfe9 100644
--- a/builtin-help.c
+++ b/builtin-help.c
@@ -361,12 +361,15 @@ static void show_man_page(const char *git_cmd)
{
struct man_viewer_list *viewer;
const char *page = cmd_to_page(git_cmd);
+ const char *fallback = getenv("GIT_MAN_VIEWER");
setup_man_path();
for (viewer = man_viewer_list; viewer; viewer = viewer->next)
{
exec_viewer(viewer->name, page); /* will return when unable */
}
+ if (fallback)
+ exec_viewer(fallback, page);
exec_viewer("man", page);
die("no man viewer handled the request");
}