diff options
Diffstat (limited to 'libc/unistd/execvep.c')
-rw-r--r-- | libc/unistd/execvep.c | 46 |
1 files changed, 0 insertions, 46 deletions
diff --git a/libc/unistd/execvep.c b/libc/unistd/execvep.c deleted file mode 100644 index 6cd8cbaf9..000000000 --- a/libc/unistd/execvep.c +++ /dev/null @@ -1,46 +0,0 @@ -#include <unistd.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - -int execvep(const char *path, char *__const argv[], char *__const envp[]) -{ - if (!strchr(path, '/')) { - char *p = getenv("PATH"); - - if (!p) - p = "/bin:/usr/bin"; - - for (; p && *p;) { - char partial[FILENAME_MAX]; - char *p2; - - p2 = strchr(p, ':'); - if (p2) { - size_t len = p2 - p; - strncpy(partial, p, len); - partial[len] = 0; - } else { - strcpy(partial, p); - } - - if (strlen(partial)) - strcat(partial, "/"); - strcat(partial, path); - - execve(partial, argv, envp); - - if (errno != ENOENT) - return -1; - - if (p2) { - p = p2 + 1; - } else { - p = 0; - } - } - return -1; - } else - return execve(path, argv, envp); -} |