summaryrefslogtreecommitdiff
path: root/git.c
diff options
context:
space:
mode:
authorJohannes Schindelin <Johannes.Schindelin@gmx.de>2007-10-20 08:21:34 +0100
committerShawn O. Pearce <spearce@spearce.org>2007-10-20 22:29:36 -0400
commit43db492a8eb701dd157f88ae9ca38d366c280761 (patch)
treee04cec37571f3c8a89eb7d71cf3f54cd91f89210 /git.c
parentd9a5f25b67951eb68e80d872611542b58ce5aa33 (diff)
downloadgit-43db492a8eb701dd157f88ae9ca38d366c280761.tar.gz
Deduce exec_path also from calls to git with a relative path
There is already logic in the git wrapper to deduce the exec_path from argv[0], when the git wrapper was called with an absolute path. Extend that logic to handle relative paths as well. For example, when you call "../../hello/world/git", it will not turn "../../hello/world" into an absolute path, and use that. Initial implementation by Scott R Parish. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Diffstat (limited to 'git.c')
-rw-r--r--git.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/git.c b/git.c
index 9eaca1d671..853e66cddb 100644
--- a/git.c
+++ b/git.c
@@ -409,13 +409,14 @@ int main(int argc, const char **argv)
/*
* Take the basename of argv[0] as the command
* name, and the dirname as the default exec_path
- * if it's an absolute path and we don't have
- * anything better.
+ * if we don't have anything better.
*/
if (slash) {
*slash++ = 0;
if (*cmd == '/')
exec_path = cmd;
+ else
+ exec_path = xstrdup(make_absolute_path(cmd));
cmd = slash;
}