That function used to do a chdir() without switching back to the
original directory. That was not a problem till this function was used
only inside builtin-help, but once other builtins use it as well, this
is a problem, for example when the object database path is relative.
Signed-off-by: Miklos Vajna <redacted>
---
help.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/help.c b/help.c
index fb93df0..d71937e 100644
--- a/help.c
+++ b/help.c
@@ -425,7 +425,9 @@ static unsigned int list_commands_in_dir(struct cmdnames *cmds,
int prefix_len;
DIR *dir = opendir(path);
struct dirent *de;
+ static char old_path[PATH_MAX+1];
+ getcwd(old_path, sizeof(old_path));
if (!dir || chdir(path))
return 0;
@@ -452,6 +454,7 @@ static unsigned int list_commands_in_dir(struct cmdnames *cmds,
}
closedir(dir);
+ chdir(old_path);
return longest;
}
--
1.6.0.rc0.14.g95f8.dirty