44 static const wchar_t suffix[][5] =
45 {
L".com",
L".exe",
L".bat",
L".cmd"};
74 if (*
p ==
'\\' || *
p ==
'/' || *
p ==
':' || *
p ==
'.')
break;
79 for (
i = 0;
i < 4;
i++)
97 while (*
p && *
p !=
';')
p++;
121 for (
i = 0;
i < 4;
i++)
136 wchar_t*
env,
int use_path)
153 memset(&si, 0,
sizeof(si));
173 return pi.dwProcessId;
193 const wchar_t*
const*
a;
228 if (delim &&
p >
ret)
p[-1] = 0;
239 const char *
const *
a;
268 *
p++ =
env ? 0 :
' ';
281 unsigned int size = 0,
pos = 0;
305 if (delim)
ret[
pos - 1] = 0;
316 unsigned int size = 0,
pos = 0;
339 if (delim)
ret[
pos - 1] = 0;
445 const wchar_t *
const *envp;
454 envp =
va_arg(
ap,
const wchar_t *
const * );
472 const char *
const *envp;
483 envp =
va_arg(
ap,
const char *
const * );
550 const wchar_t *
const *envp;
559 envp =
va_arg(
ap,
const wchar_t *
const * );
577 const char *
const *envp;
588 envp =
va_arg(
ap,
const char *
const * );
739 const wchar_t *
const *envp;
748 envp =
va_arg(
ap,
const wchar_t *
const * );
766 const char *
const *envp;
777 envp =
va_arg(
ap,
const char *
const * );
844 const wchar_t *
const *envp;
853 envp =
va_arg(
ap,
const wchar_t *
const * );
871 const char *
const *envp;
882 envp =
va_arg(
ap,
const char *
const * );
901 const char*
const* envv)
925 const wchar_t*
const* envv)
927 wchar_t *
args, *envs;
968 const char*
const* envv)
992 const wchar_t*
const* envv)
994 wchar_t *
args, *envs;
1047 int textmode, fds[2], fd_parent, fd_child;
1092 fd_child =
_dup(fds[1]);
1098 fd_child =
_dup(fds[0]);
1141 wcscpy(fullcmd, comspec);
1146 memset(&si, 0,
sizeof(si));
1188 wchar_t *cmdW, *modeW;
1257 wchar_t *comspec, *fullcmd;
1264 if (comspec ==
NULL)
1273 if (comspec ==
NULL)
1283 wcscpy(fullcmd, comspec);
1319 wchar_t *dllnameW =
NULL;
1322 if (dllname && !(dllnameW =
wstrdupa_utf8(dllname)))
return 0;
1350 if (ordinal != -1)
return NULL;
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static const WCHAR nameW[]
static LPCWSTR LPCWSTR LPCWSTR env
#define GetEnvironmentVariableW(x, y, z)
#define GetProcAddress(x, y)
#define GetCurrentProcess()
#define HeapFree(x, y, z)
#define ERROR_INVALID_HANDLE
#define MultiByteToWideChar
DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName)
BOOL WINAPI TerminateProcess(IN HANDLE hProcess, IN UINT uExitCode)
BOOL WINAPI DECLSPEC_HOTPATCH GetExitCodeProcess(HANDLE process, LPDWORD exit_code)
BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessW(const WCHAR *app_name, WCHAR *cmd_line, SECURITY_ATTRIBUTES *process_attr, SECURITY_ATTRIBUTES *thread_attr, BOOL inherit, DWORD flags, void *env, const WCHAR *cur_dir, STARTUPINFOW *startup_info, PROCESS_INFORMATION *info)
wchar_t * msvcrt_wstrdupa(const char *str)
int CDECL _get_fmode(int *mode)
wchar_t *CDECL _wgetenv(const wchar_t *name)
__msvcrt_ulong *CDECL __doserrno(void)
void CDECL _exit(int exitcode)
int CDECL _pipe(int *pfds, unsigned int psize, int textmode)
int CDECL fclose(FILE *file)
BOOL msvcrt_create_io_inherit_block(WORD *size, BYTE **block)
intptr_t CDECL _get_osfhandle(int fd)
FILE *CDECL _wfdopen(int fd, const wchar_t *mode)
_ACRTIMP size_t __cdecl wcslen(const wchar_t *)
_ACRTIMP size_t __cdecl strlen(const char *)
void CDECL _lock(int locknum)
void CDECL _unlock(int locknum)
static wchar_t * wstrdupa_utf8(const char *str)
static int convert_acp_utf8_to_wcs(const char *str, wchar_t *wstr, int len)
static UINT get_aw_cp(void)
#define MSVCRT_CHECK_PMT(x)
intptr_t CDECL _wspawnvp(int flags, const wchar_t *name, const wchar_t *const *argv)
intptr_t CDECL _spawnvp(int flags, const char *name, const char *const *argv)
intptr_t WINAPIV _spawnlpe(int flags, const char *name, const char *arg0,...)
intptr_t CDECL _wspawnvpe(int flags, const wchar_t *name, const wchar_t *const *argv, const wchar_t *const *envv)
FILE *CDECL _wpopen(const wchar_t *command, const wchar_t *mode)
intptr_t WINAPIV _spawnle(int flags, const char *name, const char *arg0,...)
static void msvcrt_search_executable(const wchar_t *name, wchar_t *fullname, int use_path)
int CDECL _pclose(FILE *file)
intptr_t WINAPIV _wspawnle(int flags, const wchar_t *name, const wchar_t *arg0,...)
intptr_t CDECL _wexecvp(const wchar_t *name, const wchar_t *const *argv)
intptr_t CDECL _spawnve(int flags, const char *name, const char *const *argv, const char *const *envv)
intptr_t CDECL _wexecve(const wchar_t *name, const wchar_t *const *argv, const wchar_t *const *envv)
intptr_t WINAPIV _spawnlp(int flags, const char *name, const char *arg0,...)
intptr_t WINAPIV _wspawnlpe(int flags, const wchar_t *name, const wchar_t *arg0,...)
intptr_t CDECL _cwait(int *status, intptr_t pid, int action)
intptr_t CDECL _wspawnv(int flags, const wchar_t *name, const wchar_t *const *argv)
intptr_t WINAPIV _wspawnlp(int flags, const wchar_t *name, const wchar_t *arg0,...)
intptr_t CDECL _execvpe(const char *name, const char *const *argv, const char *const *envv)
int CDECL _unloaddll(intptr_t dll)
intptr_t CDECL _spawnvpe(int flags, const char *name, const char *const *argv, const char *const *envv)
intptr_t CDECL _wspawnve(int flags, const wchar_t *name, const wchar_t *const *argv, const wchar_t *const *envv)
int CDECL system(const char *cmd)
static DWORD popen_handles_size
intptr_t WINAPIV _wexeclp(const wchar_t *name, const wchar_t *arg0,...)
intptr_t CDECL _wexecvpe(const wchar_t *name, const wchar_t *const *argv, const wchar_t *const *envv)
intptr_t WINAPIV _wexecle(const wchar_t *name, const wchar_t *arg0,...)
static intptr_t msvcrt_spawn(int flags, const wchar_t *exe, wchar_t *cmdline, wchar_t *env, int use_path)
intptr_t WINAPIV _execlp(const char *name, const char *arg0,...)
int CDECL _wsystem(const wchar_t *cmd)
intptr_t WINAPIV _wspawnl(int flags, const wchar_t *name, const wchar_t *arg0,...)
void msvcrt_free_popen_data(void)
intptr_t CDECL _execve(const char *name, const char *const *argv, const char *const *envv)
void *CDECL _getdllprocaddr(intptr_t dll, const char *name, int ordinal)
static wchar_t * msvcrt_get_comspec(void)
intptr_t CDECL _execv(const char *name, const char *const *argv)
intptr_t WINAPIV _wexeclpe(const wchar_t *name, const wchar_t *arg0,...)
static wchar_t * msvcrt_valisttos_aw(const char *arg0, va_list alist, wchar_t delim)
intptr_t WINAPIV _spawnl(int flags, const char *name, const char *arg0,...)
intptr_t WINAPIV _wexecl(const wchar_t *name, const wchar_t *arg0,...)
FILE *CDECL _popen(const char *command, const char *mode)
intptr_t CDECL _spawnv(int flags, const char *name, const char *const *argv)
intptr_t WINAPIV _execlpe(const char *name, const char *arg0,...)
intptr_t CDECL _wexecv(const wchar_t *name, const wchar_t *const *argv)
intptr_t WINAPIV _execle(const char *name, const char *arg0,...)
static wchar_t * msvcrt_valisttos(const wchar_t *arg0, va_list alist, wchar_t delim)
intptr_t CDECL _execvp(const char *name, const char *const *argv)
intptr_t WINAPIV _execl(const char *name, const char *arg0,...)
intptr_t CDECL _loaddll(const char *dllname)
static wchar_t * msvcrt_argvtos(const wchar_t *const *arg, wchar_t delim)
static struct popen_handle * popen_handles
static wchar_t * msvcrt_argvtos_aw(const char *const *arg, BOOL env)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
GLdouble GLdouble GLdouble r
GLboolean GLboolean GLboolean GLboolean a
GLfloat GLfloat GLfloat GLfloat h
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define memcpy(s1, s2, n)
#define ERROR_FILE_NOT_FOUND
LONG read_pipe(HANDLE hPipe, SOCKET sock)
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
#define INVALID_FILE_ATTRIBUTES
DWORD WINAPI GetLastError(void)
#define CREATE_UNICODE_ENVIRONMENT
DWORD WINAPI GetCurrentProcessId(void)
#define STARTF_USESTDHANDLES
_In_ ULONG_PTR _In_ ULONG _Out_ ULONG_PTR * pid
void int int ULONGLONG int va_list * ap