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