summaryrefslogtreecommitdiff
path: root/libc/unistd/execlp.c
diff options
context:
space:
mode:
Diffstat (limited to 'libc/unistd/execlp.c')
-rw-r--r--libc/unistd/execlp.c48
1 files changed, 0 insertions, 48 deletions
diff --git a/libc/unistd/execlp.c b/libc/unistd/execlp.c
deleted file mode 100644
index 923a2e22a..000000000
--- a/libc/unistd/execlp.c
+++ /dev/null
@@ -1,48 +0,0 @@
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <stdarg.h>
-
-extern int execvep(const char *path, char *__const argv[], char *__const envp[]);
-
-int execlp(__const char *file, __const char *arg, ...)
-{
- const char *shortargv[16];
- const char **argv;
- const char *c;
- int i;
- va_list args;
-
- i = 1;
-
- va_start(args, arg);
-
- do {
- c = va_arg(args, const char *);
-
- i++;
- } while (c);
-
- va_end(args);
-
- if (i <= 16)
- argv = shortargv;
- else {
- argv = (const char **) alloca(sizeof(char *) * i);
- }
-
- argv[0] = arg;
- i = 1;
-
- va_start(args, arg);
-
- do {
- argv[i] = va_arg(args, const char *);
- } while (argv[i++]);
-
- va_end(args);
-
- i = execvep(file, (char *const *) argv, __environ);
-
- return i;
-}