[PATCH 1/2] help.c: Add support for htmldir relative to git_exec_path()
- From
Steffen Prohaska <prohaska@zib.de>
- Date
- Jul 4, 2008, 09:09 UTC
- Message-ID
- <1215162566-16062-1-git-send-email-prohaska@zib.de>
- In-Reply-To
- <394A4A6F-3D31-4E38-A312-B49DE54FBBDD@zib.de>
If htmldir (in the Makefile) is a relative path, this path will be interpreted relative to git_exec_path. This can be used to create an installation that can be moved to a different directory without re-compiling. The Windows installer (msysgit) is an example for such a setup.
Note that the Makefile maps htmldir to the define GIT_HTML_PATH.
Signed-off-by: Steffen Prohaska <prohaska@zib.de> --- help.c | 14 +++++++++++--- 1 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/help.c b/help.c index ca9632b..5586e1d 100644 --- a/help.c +++ b/help.c @@ -634,12 +634,20 @@ static void get_html_page_path(struct strbuf *page_path, const char *page) { struct stat st; + const char* html_path = GIT_HTML_PATH; + if (!is_absolute_path(html_path)) { + struct strbuf d = STRBUF_INIT; + strbuf_addf(&d, "%s/%s", git_exec_path(), html_path); + html_path = strbuf_detach(&d, NULL); + } + /* Check that we have a git documentation directory. */ - if (stat(GIT_HTML_PATH "/git.html", &st) || !S_ISREG(st.st_mode)) - die("'%s': not a documentation directory.", GIT_HTML_PATH); + if (stat(mkpath("%s/git.html", html_path), &st) + || !S_ISREG(st.st_mode)) + die("'%s': not a documentation directory.", html_path); strbuf_init(page_path, 0); - strbuf_addf(page_path, GIT_HTML_PATH "/%s.html", page); + strbuf_addf(page_path, "%s/%s.html", html_path, page); } static void show_html_page(const char *git_cmd)
-- 1.5.6.1.282.gd8a0d