-static Bool
-on_path_p (const char *program)
-{
- int result = False;
- struct stat st;
- char *cmd = strdup (program);
- char *token = strchr (cmd, ' ');
- char *path = 0;
- int L;
-
- if (token) *token = 0;
- token = 0;
-
- if (strchr (cmd, '/'))
- {
- result = (0 == stat (cmd, &st));
- goto DONE;
- }
-
- path = getenv("PATH");
- if (!path || !*path)
- goto DONE;
-
- L = strlen (cmd);
- path = strdup (path);
- token = strtok (path, ":");
-
- while (token)
- {
- char *p2 = (char *) malloc (strlen (token) + L + 3);
- strcpy (p2, token);
- strcat (p2, "/");
- strcat (p2, cmd);
- result = (0 == stat (p2, &st));
- if (result)
- goto DONE;
- token = strtok (0, ":");
- }
-
- DONE:
- free (cmd);
- if (path) free (path);
- return result;
-}
-
-