e6e6f2179eabd81317d1a69d01f1ec6d39990121
[reactos.git] / reactos / lib / crtdll / process / execlpe.c
1 #include <msvcrt/process.h>
2 #include <msvcrt/stdlib.h>
3 #include <msvcrt/stdarg.h>
4
5
6 int execlpe(const char *path, const char *szArgv0, ... /*, const char **envp */)
7 {
8 char *szArg[100];
9 const char *a;
10 char *ptr;
11 int i = 0;
12 va_list l = 0;
13 va_start(l,szArgv0);
14 do {
15 a = (const char *)va_arg(l,const char *);
16 szArg[i++] = (char *)a;
17 } while ( a != NULL && i < 100 );
18
19
20 // szArg0 is passed and not environment if there is only one parameter;
21
22 if ( i >=2 ) {
23 ptr = szArg[i-2];
24 szArg[i-2] = NULL;
25 }
26 else
27 ptr = NULL;
28 return spawnvpe(P_OVERLAY, path, (char * const *)szArg, (char * const *)ptr);
29 }