[PATCH v7 3/6] run-command: make `exists_in_PATH()` non-static
- From
Miriam Rubio <mirucam@gmail.com>
- Date
- Sep 13, 2021, 17:39 UTC
- Message-ID
- <20210913173905.44438-4-mirucam@gmail.com>
- In-Reply-To
- <20210913173905.44438-1-mirucam@gmail.com>
From: Pranit Bauva <pranit.bauva@gmail.com>
Remove the `static` keyword from `exists_in_PATH()` function and declare the function in `run-command.h` file. The function will be used in bisect_visualize() in a later commit.
Mentored by: Christian Couder <chriscool@tuxfamily.org> Mentored by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Tanushree Tumane <tanushreetumane@gmail.com> Signed-off-by: Miriam Rubio <mirucam@gmail.com> --- run-command.c | 4 ++-- run-command.h | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/run-command.c b/run-command.c index f72e72cce7..da02553f44 100644 --- a/run-command.c +++ b/run-command.c @@ -210,9 +210,9 @@ static char *locate_in_PATH(const char *file) return NULL; } -static int exists_in_PATH(const char *file) +int exists_in_PATH(const char *command) { - char *r = locate_in_PATH(file); + char *r = locate_in_PATH(command); int found = r != NULL; free(r); return found; diff --git a/run-command.h b/run-command.h index af1296769f..aad027984d 100644 --- a/run-command.h +++ b/run-command.h @@ -182,6 +182,18 @@ void child_process_clear(struct child_process *); int is_executable(const char *name); +/** + * Check if the command exists on $PATH. This emulates the path search that + * execvp would perform, without actually executing the command so it + * can be used before fork() to prepare to run a command using + * execve() or after execvp() to diagnose why it failed. + * + * The caller should ensure that command contains no directory separators. + * + * Returns 1 if it is found in $PATH or 0 if the command could not be found. + */ +int exists_in_PATH(const char *command); + /** * Start a sub-process. Takes a pointer to a `struct child_process` * that specifies the details and returns pipe FDs (if requested).
-- 2.29.2