builtin-help: fallback to GIT_MAN_VIEWER before man
authorRomain Francoise <romain@orebokech.com>
Fri, 29 Aug 2008 15:00:43 +0000 (17:00 +0200)
committerJunio C Hamano <gitster@pobox.com>
Sat, 30 Aug 2008 04:46:33 +0000 (21:46 -0700)
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>
Documentation/git-help.txt
builtin-help.c

index f414583fc48e85e4785fbf5f9431bb81a96ccd9d..d9b9c34b3a60f09bea4f9e53b5127f33f356e042 100644 (file)
@@ -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
 ~~~~~~~~~~~~~~~
index 721038e4f55703d00efc62af8ccf4588182fb58f..64207cbfe909d17ea9698d3ff680203eee9f5c01 100644 (file)
@@ -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");
 }