1 /***********************************************************************
3 * This software is part of the ast package *
4 * Copyright (c) 1985-2010 AT&T Intellectual Property *
5 * and is licensed under the *
6 * Common Public License, Version 1.0 *
7 * by AT&T Intellectual Property *
9 * A copy of the License is available at *
10 * http://www.opensource.org/licenses/cpl1.0.txt *
11 * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
13 * Information and Software Systems Research *
17 * Glenn Fowler <gsf@research.att.com> *
18 * David Korn <dgk@research.att.com> *
19 * Phong Vo <kpv@research.att.com> *
21 ***********************************************************************/
34 #if defined(__EXPORT__)
35 __EXPORT__
int execvpe(const char*, char* const[], char* const[]);
41 #if defined(__EXPORT__)
42 #define extern __EXPORT__
46 execvpe(const char* name
, char* const argv
[], char* const envv
[])
48 register const char* path
= name
;
49 char buffer
[PATH_MAX
];
51 if (*path
!= '/' && !(path
= pathpath(buffer
, name
, NULL
, PATH_REGULAR
|PATH_EXECUTE
)))
53 execve(path
, argv
, envv
);
56 register char** newargv
;
60 for (ov
= (char**)argv
; *ov
++;);
61 if (newargv
= newof(0, char*, ov
+ 1 - (char**)argv
, 0))
67 while (*nv
++ = *++ov
);
69 execve(path
, newargv
, envv
);