From 3621db4e6a5469ba0570fb422c55e2b85765c0d2 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Sat, 4 Dec 2021 11:48:49 -0800 Subject: [PATCH] SCP: Prefer Posix 'command -v' over 'which' --- scp.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/scp.c b/scp.c index 75ee39ac..2987072e 100644 --- a/scp.c +++ b/scp.c @@ -6411,8 +6411,10 @@ FILE *f; #define popen _popen #define pclose _pclose #else -#define FIND_CMD "which" -#define FIND_CMD2 "" +#define FIND_CMD "command -v" +#define FIND_CMD2 "2>/dev/null" +#define FIND_CMD_EXTRA "which" +#define FIND_CMD2_EXTRA "2>/dev/null" #endif memset (toolpath, 0, sizeof(toolpath)); snprintf (findcmd, sizeof (findcmd), "%s %s %s", FIND_CMD, tool, FIND_CMD2); @@ -6424,6 +6426,19 @@ if ((f = popen (findcmd, "r"))) { } while (toolpath[0] == '\0'); pclose (f); } +if (toolpath[0] == '\0') { /* Not found yet? */ +#if defined(FIND_CMD_EXTRA) /* Try with alternative command */ + snprintf (findcmd, sizeof (findcmd), "%s %s %s", FIND_CMD_EXTRA, tool, FIND_CMD2_EXTRA); + if ((f = popen (findcmd, "r"))) { + do { + if (NULL == fgets (toolpath, sizeof(toolpath)-1, f)) + break; + sim_trim_endspc (toolpath); + } while (toolpath[0] == '\0'); + pclose (f); + } +#endif + } return toolpath; }