aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xgit-help--browse.sh23
-rw-r--r--help.c2
2 files changed, 19 insertions, 6 deletions
diff --git a/git-help--browse.sh b/git-help--browse.sh
index 88608bded..8ed489d88 100755
--- a/git-help--browse.sh
+++ b/git-help--browse.sh
@@ -16,7 +16,7 @@
# git maintainer.
#
-USAGE='[--browser=browser|--tool=browser] url/file ...'
+USAGE='[--browser=browser|--tool=browser] [--config=conf.var] url/file ...'
# This must be capable of running outside of git directory, so
# the vanilla git-sh-setup should not be used.
@@ -53,6 +53,18 @@ do
shift ;;
esac
;;
+ -c|--config*)
+ case "$#,$1" in
+ *,*=*)
+ conf=`expr "z$1" : 'z-[^=]*=\(.*\)'`
+ ;;
+ 1,*)
+ usage ;;
+ *)
+ conf="$2"
+ shift ;;
+ esac
+ ;;
--)
break
;;
@@ -70,15 +82,16 @@ test $# = 0 && usage
if test -z "$browser"
then
- for opt in "help.browser" "web.browser"
+ for opt in "$conf" "web.browser"
do
+ test -z "$opt" && continue
browser="`git config $opt`"
test -z "$browser" || break
done
if test -n "$browser" && ! valid_tool "$browser"; then
- echo >&2 "git config option $opt set to unknown browser: $browser"
- echo >&2 "Resetting to default..."
- unset browser
+ echo >&2 "git config option $opt set to unknown browser: $browser"
+ echo >&2 "Resetting to default..."
+ unset browser
fi
fi
diff --git a/help.c b/help.c
index b929899e6..058a39753 100644
--- a/help.c
+++ b/help.c
@@ -347,7 +347,7 @@ static void show_html_page(const char *git_cmd)
get_html_page_path(&page_path, page);
- execl_git_cmd("help--browse", page_path.buf, NULL);
+ execl_git_cmd("help--browse", "-c", "help.browser", page_path.buf, NULL);
}
void help_unknown_cmd(const char *cmd)