Skip to content

Commit

Permalink
system_path(): simplify using strip_path_suffix(), and add suffix "git"
Browse files Browse the repository at this point in the history
At least for the author of this patch, the logic in system_path() was
too hard to understand.  Using the function strip_path_suffix() documents
the idea of the code better.

The real change is to add the suffix "git", so that a runtime prefix will
be computed correctly even when the executable was called in /git/ as is
the case in msysGit (Windows insists to search the current directory
before the PATH when looking for an executable).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Johannes Schindelin authored and Junio C Hamano committed Feb 20, 2009
1 parent 4fcc86b commit 024aa7d
Showing 1 changed file with 4 additions and 29 deletions.
33 changes: 4 additions & 29 deletions exec_cmd.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,35 +23,10 @@ const char *system_path(const char *path)
assert(argv0_path);
assert(is_absolute_path(argv0_path));

if (!prefix) {
const char *strip[] = {
GIT_EXEC_PATH,
BINDIR,
0
};
const char **s;

for (s = strip; *s; s++) {
const char *sargv = argv0_path + strlen(argv0_path);
const char *ss = *s + strlen(*s);
while (argv0_path < sargv && *s < ss
&& (*sargv == *ss ||
(is_dir_sep(*sargv) && is_dir_sep(*ss)))) {
sargv--;
ss--;
}
if (*s == ss) {
struct strbuf d = STRBUF_INIT;
/* We also skip the trailing directory separator. */
assert(sargv - argv0_path - 1 >= 0);
strbuf_add(&d, argv0_path, sargv - argv0_path - 1);
prefix = strbuf_detach(&d, NULL);
break;
}
}
}

if (!prefix) {
if (!prefix &&
!(prefix = strip_path_suffix(argv0_path, GIT_EXEC_PATH)) &&
!(prefix = strip_path_suffix(argv0_path, BINDIR)) &&
!(prefix = strip_path_suffix(argv0_path, "git"))) {
prefix = PREFIX;
fprintf(stderr, "RUNTIME_PREFIX requested, "
"but prefix computation failed. "
Expand Down

0 comments on commit 024aa7d

Please sign in to comment.