summaryrefslogtreecommitdiff
path: root/libc/unistd/execvep.c
diff options
context:
space:
mode:
authorManuel Novoa III <mjn3@codepoet.org>2004-01-02 08:44:58 +0000
committerManuel Novoa III <mjn3@codepoet.org>2004-01-02 08:44:58 +0000
commit400e6fc264cbe6ca3ca572d94bbf5f929f256713 (patch)
tree7c7cd0d0dc3e59fe1ab7e369e73c1d521797c47b /libc/unistd/execvep.c
parent33e58d3c9e1282b210313c8ee46daeb74edb99e8 (diff)
Redo the exec functions to comply with SUSv3.
Diffstat (limited to 'libc/unistd/execvep.c')
-rw-r--r--libc/unistd/execvep.c46
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);
-}