Allow git help work without PATH set
Just because we can Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
c7371e992b
commit
1f08e5ce24
43
help.c
43
help.c
@ -178,37 +178,34 @@ void load_command_list(const char *prefix,
|
|||||||
struct cmdnames *other_cmds)
|
struct cmdnames *other_cmds)
|
||||||
{
|
{
|
||||||
const char *env_path = getenv("PATH");
|
const char *env_path = getenv("PATH");
|
||||||
char *paths, *path, *colon;
|
|
||||||
const char *exec_path = git_exec_path();
|
const char *exec_path = git_exec_path();
|
||||||
|
|
||||||
if (exec_path)
|
if (exec_path) {
|
||||||
list_commands_in_dir(main_cmds, exec_path, prefix);
|
list_commands_in_dir(main_cmds, exec_path, prefix);
|
||||||
|
qsort(main_cmds->names, main_cmds->cnt,
|
||||||
if (!env_path) {
|
sizeof(*main_cmds->names), cmdname_compare);
|
||||||
fprintf(stderr, "PATH not set\n");
|
uniq(main_cmds);
|
||||||
exit(1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
path = paths = xstrdup(env_path);
|
if (env_path) {
|
||||||
while (1) {
|
char *paths, *path, *colon;
|
||||||
if ((colon = strchr(path, PATH_SEP)))
|
path = paths = xstrdup(env_path);
|
||||||
*colon = 0;
|
while (1) {
|
||||||
|
if ((colon = strchr(path, PATH_SEP)))
|
||||||
|
*colon = 0;
|
||||||
|
|
||||||
list_commands_in_dir(other_cmds, path, prefix);
|
list_commands_in_dir(other_cmds, path, prefix);
|
||||||
|
|
||||||
if (!colon)
|
if (!colon)
|
||||||
break;
|
break;
|
||||||
path = colon + 1;
|
path = colon + 1;
|
||||||
|
}
|
||||||
|
free(paths);
|
||||||
|
|
||||||
|
qsort(other_cmds->names, other_cmds->cnt,
|
||||||
|
sizeof(*other_cmds->names), cmdname_compare);
|
||||||
|
uniq(other_cmds);
|
||||||
}
|
}
|
||||||
free(paths);
|
|
||||||
|
|
||||||
qsort(main_cmds->names, main_cmds->cnt,
|
|
||||||
sizeof(*main_cmds->names), cmdname_compare);
|
|
||||||
uniq(main_cmds);
|
|
||||||
|
|
||||||
qsort(other_cmds->names, other_cmds->cnt,
|
|
||||||
sizeof(*other_cmds->names), cmdname_compare);
|
|
||||||
uniq(other_cmds);
|
|
||||||
exclude_cmds(other_cmds, main_cmds);
|
exclude_cmds(other_cmds, main_cmds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user