Add config variable to set HTML path for git-help --web

If set in git-config, help.htmlpath overrides system_path(GIT_HTML_PATH)
which was compiled in. This allows users to repoint system-wide git at
their own copy of the documentation without recompiling.

Signed-off-by: Chris Webb <chris@arachsys.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Chris Webb 2012-06-28 07:58:02 +01:00 коммит произвёл Junio C Hamano
Родитель 4c8a9db6f7
Коммит 89a852efb9
1 изменённых файлов: 10 добавлений и 1 удалений

Просмотреть файл

@ -30,6 +30,8 @@ enum help_format {
HELP_FORMAT_WEB HELP_FORMAT_WEB
}; };
static const char *html_path;
static int show_all = 0; static int show_all = 0;
static unsigned int colopts; static unsigned int colopts;
static enum help_format help_format = HELP_FORMAT_NONE; static enum help_format help_format = HELP_FORMAT_NONE;
@ -261,6 +263,12 @@ static int git_help_config(const char *var, const char *value, void *cb)
help_format = parse_help_format(value); help_format = parse_help_format(value);
return 0; return 0;
} }
if (!strcmp(var, "help.htmlpath")) {
if (!value)
return config_error_nonbool(var);
html_path = xstrdup(value);
return 0;
}
if (!strcmp(var, "man.viewer")) { if (!strcmp(var, "man.viewer")) {
if (!value) if (!value)
return config_error_nonbool(var); return config_error_nonbool(var);
@ -383,7 +391,8 @@ static void show_info_page(const char *git_cmd)
static void get_html_page_path(struct strbuf *page_path, const char *page) static void get_html_page_path(struct strbuf *page_path, const char *page)
{ {
struct stat st; struct stat st;
const char *html_path = system_path(GIT_HTML_PATH); if (!html_path)
html_path = system_path(GIT_HTML_PATH);
/* Check that we have a git documentation directory. */ /* Check that we have a git documentation directory. */
if (stat(mkpath("%s/git.html", html_path), &st) if (stat(mkpath("%s/git.html", html_path), &st)