intptr_t __cdecl _tspawnle ( int modeflag, const _TSCHAR *pathname, const _TSCHAR *arglist, ... ) { #ifdef _M_IX86 REG1 const _TSCHAR **argp; /* validation section */ _VALIDATE_RETURN(pathname != NULL, EINVAL, -1); _VALIDATE_RETURN(*pathname != _T('\0'), EINVAL, -1); _VALIDATE_RETURN(arglist != NULL, EINVAL, -1); _VALIDATE_RETURN(*arglist != _T('\0'), EINVAL, -1); /* walk the arglist until the terminating NULL pointer is found. The * next location holds the environment table pointer. */ argp = &arglist; while (*argp++) ; return(_tspawnve(modeflag,pathname,&arglist,(_TSCHAR **)*argp)); #else /* _M_IX86 */ va_list vargs; _TSCHAR * argbuf[64]; _TSCHAR ** argv; _TSCHAR ** envp; intptr_t result; /* validation section */ _VALIDATE_RETURN(pathname != NULL, EINVAL, -1); _VALIDATE_RETURN(*pathname != _T('\0'), EINVAL, -1); _VALIDATE_RETURN(arglist != NULL, EINVAL, -1); _VALIDATE_RETURN(*arglist != _T('\0'), EINVAL, -1); va_start(vargs, arglist); #ifdef WPRFLAG argv = _wcapture_argv(&vargs, arglist, argbuf, 64); #else /* WPRFLAG */ argv = _capture_argv(&vargs, arglist, argbuf, 64); #endif /* WPRFLAG */ envp = va_arg(vargs, _TSCHAR **); va_end(vargs); result = _tspawnve(modeflag,pathname,argv,envp); if (argv && argv != argbuf) _free_crt(argv); return result; #endif /* _M_IX86 */ }
intptr_t __cdecl _texeclpe ( const _TSCHAR *filename, const _TSCHAR *arglist, ... ) { #ifdef _M_IX86 const _TSCHAR **argp; /* validation section */ _VALIDATE_RETURN(filename != NULL, EINVAL, -1); _VALIDATE_RETURN(*filename != _T('\0'), EINVAL, -1); _VALIDATE_RETURN(arglist != NULL, EINVAL, -1); _VALIDATE_RETURN(*arglist != _T('\0'), EINVAL, -1); argp = &arglist; while (*argp++) ; return(_texecvpe(filename,&arglist,(_TSCHAR **)*argp)); #else /* _M_IX86 */ va_list vargs; _TSCHAR * argbuf[64]; _TSCHAR ** argv; _TSCHAR ** envp; intptr_t result; /* validation section */ _VALIDATE_RETURN(filename != NULL, EINVAL, -1); _VALIDATE_RETURN(*filename != _T('\0'), EINVAL, -1); _VALIDATE_RETURN(arglist != NULL, EINVAL, -1); _VALIDATE_RETURN(*arglist != _T('\0'), EINVAL, -1); va_start(vargs, arglist); #ifdef WPRFLAG argv = _wcapture_argv(&vargs, arglist, argbuf, 64); #else /* WPRFLAG */ argv = _capture_argv(&vargs, arglist, argbuf, 64); #endif /* WPRFLAG */ envp = va_arg(vargs, _TSCHAR **); va_end(vargs); result = _texecvpe(filename,argv,envp); if (argv && argv != argbuf) _free_crt(argv); return result; #endif /* _M_IX86 */ }
int __cdecl _tspawnlpe ( int modeflag, const _TSCHAR *filename, const _TSCHAR *arglist, ... ) { #ifdef _M_IX86 REG1 const _TSCHAR **argp; _ASSERTE(filename != NULL); _ASSERTE(*filename != _T('\0')); _ASSERTE(arglist != NULL); _ASSERTE(*arglist != _T('\0')); argp = &arglist; while (*argp++) ; return(_tspawnvpe(modeflag,filename,&arglist,(_TSCHAR **)*argp)); #else /* _M_IX86 */ va_list vargs; _TSCHAR * argbuf[64]; _TSCHAR ** argv; _TSCHAR ** envp; int result; _ASSERTE(filename != NULL); _ASSERTE(*filename != _T('\0')); _ASSERTE(arglist != NULL); _ASSERTE(*arglist != _T('\0')); va_start(vargs, arglist); #ifdef WPRFLAG argv = _wcapture_argv(&vargs, arglist, argbuf, 64); #else /* WPRFLAG */ argv = _capture_argv(&vargs, arglist, argbuf, 64); #endif /* WPRFLAG */ envp = va_arg(vargs, _TSCHAR **); va_end(vargs); result = _tspawnvpe(modeflag,filename,argv,envp); if (argv && argv != argbuf) _free_crt(argv); return result; #endif /* _M_IX86 */ }
int __cdecl _texeclp ( const _TSCHAR *filename, const _TSCHAR *arglist, ... ) { #ifdef _M_IX86 _ASSERTE(filename != NULL); _ASSERTE(*filename != _T('\0')); _ASSERTE(arglist != NULL); _ASSERTE(*arglist != _T('\0')); return(_texecvp(filename,&arglist)); #else /* _M_IX86 */ va_list vargs; _TSCHAR * argbuf[64]; _TSCHAR ** argv; int result; _ASSERTE(filename != NULL); _ASSERTE(*filename != _T('\0')); _ASSERTE(arglist != NULL); _ASSERTE(*arglist != _T('\0')); va_start(vargs, arglist); #ifdef WPRFLAG argv = _wcapture_argv(&vargs, arglist, argbuf, 64); #else /* WPRFLAG */ argv = _capture_argv(&vargs, arglist, argbuf, 64); #endif /* WPRFLAG */ va_end(vargs); result = _texecvp(filename,argbuf); if (argv && argv != argbuf) _free_crt(argv); return result; #endif /* _M_IX86 */ }
intptr_t __cdecl _tspawnl( int modeflag, const _TSCHAR* pathname, const _TSCHAR* arglist, ... ) { #ifdef _M_IX86 /* validation section */ _VALIDATE_RETURN(pathname != NULL, EINVAL, -1); _VALIDATE_RETURN(*pathname != _T('\0'), EINVAL, -1); _VALIDATE_RETURN(arglist != NULL, EINVAL, -1); _VALIDATE_RETURN(*arglist != _T('\0'), EINVAL, -1); return (_tspawnve(modeflag, pathname, &arglist, NULL)); #else /* _M_IX86 */ va_list vargs; _TSCHAR* argbuf[64]; _TSCHAR** argv; intptr_t result; /* validation section */ _VALIDATE_RETURN(pathname != NULL, EINVAL, -1); _VALIDATE_RETURN(*pathname != _T('\0'), EINVAL, -1); _VALIDATE_RETURN(arglist != NULL, EINVAL, -1); _VALIDATE_RETURN(*arglist != _T('\0'), EINVAL, -1); va_start(vargs, arglist); #ifdef WPRFLAG argv = _wcapture_argv(&vargs, arglist, argbuf, 64); #else /* WPRFLAG */ argv = _capture_argv(&vargs, arglist, argbuf, 64); #endif /* WPRFLAG */ va_end(vargs); result = _tspawnve(modeflag, pathname, argv, NULL); if (argv && argv != argbuf) { _free_crt(argv); } return result; #endif /* _M_IX86 */ }