summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/lib/execvp.c
diff options
context:
space:
mode:
authorMystery Man <unknown@mandriva.org>2002-07-09 13:18:50 +0000
committerMystery Man <unknown@mandriva.org>2002-07-09 13:18:50 +0000
commit061aa98f8ab5e8b097f3c67e8074f3b057d1d1bf (patch)
tree6a497ebd94857616d1351e47418c0c3d6db4f563 /mdk-stage1/dietlibc/lib/execvp.c
parenta6a904a31e39b74144c53f0cc4086d496b70c09a (diff)
downloaddrakx-061aa98f8ab5e8b097f3c67e8074f3b057d1d1bf.tar
drakx-061aa98f8ab5e8b097f3c67e8074f3b057d1d1bf.tar.gz
drakx-061aa98f8ab5e8b097f3c67e8074f3b057d1d1bf.tar.bz2
drakx-061aa98f8ab5e8b097f3c67e8074f3b057d1d1bf.tar.xz
drakx-061aa98f8ab5e8b097f3c67e8074f3b057d1d1bf.zip
This commit was manufactured by cvs2svn to create tag 'V1_1_8_3mdk'.V1_1_8_3mdk
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;
-}