summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/lib/execvp.c
diff options
context:
space:
mode:
authorMystery Man <unknown@mandriva.org>2002-09-14 18:25:46 +0000
committerMystery Man <unknown@mandriva.org>2002-09-14 18:25:46 +0000
commit40fc236df0b0f5d9f61030264e4c82e88719a52e (patch)
treeb278238b7dc2559c8920bfb8a35f933b7754c7f5 /mdk-stage1/dietlibc/lib/execvp.c
parentd4079232d73723aab49dfa9d81187a7e8a60bf55 (diff)
downloaddrakx-backup-do-not-use-40fc236df0b0f5d9f61030264e4c82e88719a52e.tar
drakx-backup-do-not-use-40fc236df0b0f5d9f61030264e4c82e88719a52e.tar.gz
drakx-backup-do-not-use-40fc236df0b0f5d9f61030264e4c82e88719a52e.tar.bz2
drakx-backup-do-not-use-40fc236df0b0f5d9f61030264e4c82e88719a52e.tar.xz
drakx-backup-do-not-use-40fc236df0b0f5d9f61030264e4c82e88719a52e.zip
This commit was manufactured by cvs2svn to create tag 'V1_1_9_48mdk'.V1_1_9_48mdk
Diffstat (limited to 'mdk-stage1/dietlibc/lib/execvp.c')
-rw-r--r--mdk-stage1/dietlibc/lib/execvp.c38
1 files changed, 0 insertions, 38 deletions
diff --git a/mdk-stage1/dietlibc/lib/execvp.c b/mdk-stage1/dietlibc/lib/execvp.c
deleted file mode 100644
index 20521d69f..000000000
--- a/mdk-stage1/dietlibc/lib/execvp.c
+++ /dev/null
@@ -1,38 +0,0 @@
-#include <limits.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <errno.h>
-#include "exec_lib.h"
-
-int execvp(const char *file, char *const argv[]) {
- char *path=getenv("PATH");
- char *cur,*next;
- char buf[PATH_MAX];
- if (strchr((char*)file,'/')) {
- if (execve(file,argv,environ)==-1) {
- if (errno==ENOEXEC) __exec_shell(file,argv);
- return -1;
- }
- }
- if (!path) path=_PATH_DEFPATH;
- for (cur=path; cur; cur=next) {
- next=strchr(cur,':');
- if (!next)
- next=cur+strlen(cur);
- if (next==cur) {
- buf[0]='.';
- cur--;
- } else
- memmove(buf,cur,next-cur);
- buf[next-cur]='/';
- memmove(&buf[next-cur+1],file,strlen(file)+1);
- if (execve(buf,argv,environ)==-1) {
- if (errno==ENOEXEC) return __exec_shell(buf,argv);
- if ((errno!=EACCES) && (errno!=ENOENT)) return -1;
- }
- if (*next==0) break;
- next++;
- }
- return -1;
-}