[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] findprog: Support searching in a specified path string
From: |
Paul Smith |
Subject: |
Re: [PATCH] findprog: Support searching in a specified path string |
Date: |
Fri, 06 Sep 2019 19:21:42 -0400 |
User-agent: |
Evolution 3.32.1-2 |
I don't know if people would prefer to actually define two real
functions one of which just invokes the other, rather than use a
preprocessor macro to forward the old one to the new one.
I'm fine with it either way.
On Fri, 2019-09-06 at 19:10 -0400, Paul Smith wrote:
> find_prog_in_path() always uses the PATH value in the current
> environment. It can be very useful to search for programs on
> a path without having to modify the environment first.
>
> Provide find_in_path_str() which takes a path string to search.
> If the path passed in is NULL, fall back to searching in the
> environment's PATH value.
>
> * lib/findprog.h (find_prog_in_path_str): Added.
> (find_prog_in_path): Turn into a macro invoking the new function.
> * lib/findprog.c (find_prog_in_path): Rename, add the extra
> argument "in_path", and only look up PATH if it's NULL.
> ---
> lib/findprog.c | 12 +++++++-----
> lib/findprog.h | 10 +++++++++-
> 2 files changed, 16 insertions(+), 6 deletions(-)
>
> diff --git a/lib/findprog.c b/lib/findprog.c
> index 89fbe5fdf..94c938306 100644
> --- a/lib/findprog.c
> +++ b/lib/findprog.c
> @@ -36,7 +36,7 @@
>
>
> const char *
> -find_in_path (const char *progname)
> +find_in_path_str (const char *progname, const char *in_path)
> {
> #if defined _WIN32 || defined __CYGWIN__ || defined __EMX__ || defined
> __DJGPP__
> /* Native Windows, Cygwin, OS/2, DOS */
> @@ -54,17 +54,19 @@ find_in_path (const char *progname)
> the current directory. PATH is not used. */
> return progname;
>
> - path = getenv ("PATH");
> - if (path == NULL || *path == '\0')
> + if (in_path == NULL)
> + in_path = getenv ("PATH");
> +
> + if (in_path == NULL || *in_path == '\0')
> /* If PATH is not set, the default search path is implementation
> dependent. */
> return progname;
>
> /* Make a copy, to prepare for destructive modifications. */
> # if !IN_FINDPROG_LGPL
> - path = xstrdup (path);
> + path = xstrdup (in_path);
> # else
> - path = strdup (path);
> + path = strdup (in_path);
> if (path == NULL)
> /* Out of memory. */
> return progname;
> diff --git a/lib/findprog.h b/lib/findprog.h
> index a354f67f7..5af3f1a90 100644
> --- a/lib/findprog.h
> +++ b/lib/findprog.h
> @@ -29,7 +29,15 @@ extern "C" {
> Because of the latter case, callers should use execlp/execvp, not
> execl/execv on the returned pathname.
> The returned string is freshly malloc()ed if it is != PROGNAME. */
> -extern const char *find_in_path (const char *progname);
> +#define find_in_path(_p) find_in_path_str(_p, 0)
> +
> +
> +/* Look up a program in the provided path.
> + Behaves the same as find_in_path() but looks in the provided path string
> + rather than in the PATH environment variable. If path is null then use
> + the PATH environment variable.
> + The returned string is freshly malloc()ed if it is != PROGNAME. */
> +extern const char *find_in_path_str (const char *progname, const char *path);
>
>
> #ifdef __cplusplus
- [PATCH] findprog: Support searching in a specified path string, Paul Smith, 2019/09/06
- Re: [PATCH] findprog: Support searching in a specified path string,
Paul Smith <=
- Re: [PATCH] findprog: Support searching in a specified path string, Bruno Haible, 2019/09/07
- Re: [PATCH] findprog: Support searching in a specified path string, Paul Smith, 2019/09/07
- Re: [PATCH] findprog: Support searching in a specified path string, Bruno Haible, 2019/09/08
- Re: [PATCH] findprog: Support searching in a specified path string, Paul Smith, 2019/09/08
- Re: [PATCH] findprog: Support searching in a specified path string, Bruno Haible, 2019/09/08
- Re: [PATCH] findprog: Support searching in a specified path string, Bruno Haible, 2019/09/08
- Re: [PATCH] findprog: Support searching in a specified path string, Paul Smith, 2019/09/08
- Re: [PATCH] findprog: Support searching in a specified path string, Bruno Haible, 2019/09/08
- Re: [PATCH] findprog: Support searching in a specified path string, Paul Smith, 2019/09/08
- Re: [PATCH] findprog: Support searching in a specified path string, Bruno Haible, 2019/09/09