summaryrefslogtreecommitdiff
path: root/help.c
diff options
context:
space:
mode:
authorSteffen Prohaska <prohaska@zib.de>2008-07-13 22:31:20 +0200
committerJunio C Hamano <gitster@pobox.com>2008-07-13 14:41:28 -0700
commit4804aabcdbffb41dba96825ca2693ea45830a108 (patch)
tree97d36d7fea4a6b5414cedf3cb7720beb4bdb189d /help.c
parent868da8d5e329c951f0d0cd049a8f9fecda64d388 (diff)
downloadgit-4804aabcdbffb41dba96825ca2693ea45830a108.tar.gz
help (Windows): Display HTML in default browser using Windows' shell API
The system's default browser for displaying HTML help pages is now used directly on Windows, instead of launching git-web--browser, which requires a Unix shell. Avoiding MSYS' bash when possible is good because it avoids potential path translation issues. In this case it is not too hard to avoid launching a shell, so let's avoid it. The Windows-specific code is implemented in compat/mingw.c to avoid platform-specific code in the main code base. On Windows, open_html is provided as a define. If open_html is not defined, git-web--browse is used. This approach avoids platform-specific ifdefs by using per-function ifdefs. The "ifndef open_html" together with the introductory comment should sufficiently warn developers, so that they hopefully will not break this mechanism. Signed-off-by: Steffen Prohaska <prohaska@zib.de> Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'help.c')
-rw-r--r--help.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/help.c b/help.c
index 0f055bf9aa..52d39b88a3 100644
--- a/help.c
+++ b/help.c
@@ -644,6 +644,18 @@ static void get_html_page_path(struct strbuf *page_path, const char *page)
strbuf_addf(page_path, "%s/%s.html", html_path, page);
}
+/*
+ * If open_html is not defined in a platform-specific way (see for
+ * example compat/mingw.h), we use the script web--browse to display
+ * HTML.
+ */
+#ifndef open_html
+void open_html(const char *path)
+{
+ execl_git_cmd("web--browse", "-c", "help.browser", path, NULL);
+}
+#endif
+
static void show_html_page(const char *git_cmd)
{
const char *page = cmd_to_page(git_cmd);
@@ -651,7 +663,7 @@ static void show_html_page(const char *git_cmd)
get_html_page_path(&page_path, page);
- execl_git_cmd("web--browse", "-c", "help.browser", page_path.buf, NULL);
+ open_html(page_path.buf);
}
void help_unknown_cmd(const char *cmd)