34 static inline BOOL is_sepA(
char ch) {
return ch ==
'/' || ch ==
'\\';}
145 const char *
p = DirPath;
148 if (
p[0] &&
p[1] ==
':')
p += 2;
149 while (*
p ==
'\\')
p++;
176 TRACE(
"(%s %s %p %p)\n",
188 if (filestop) *filestop = (
PWSTR)fptr;
189 if (matchstop) *matchstop = (
PWSTR)mptr;
191 return mptr ==
match - 1;
215 if (filestop) *filestop = (
PSTR)fptr;
216 if (matchstop) *matchstop = (
PSTR)mptr;
218 return mptr ==
match - 1;
228 static const WCHAR S_AllW[] = {
'*',
'.',
'*',
'\0'};
229 static const WCHAR S_DotW[] = {
'.',
'\0'};
230 static const WCHAR S_DotDotW[] = {
'.',
'.',
'\0'};
243 if (!
wcscmp(
fd.cFileName, S_DotW) || !
wcscmp(
fd.cFileName, S_DotDotW))
continue;
264 TRACE(
"(%s, %s, %p)\n",
296 TRACE(
"(%p %s %s %p %p %p)\n",
356 if (!
s->cb)
return TRUE;
378 TRACE(
"(hProcess = %p, searchPath = %s, full_path = %s, id = %p, two = 0x%08x, three = 0x%08x, flags = 0x%08x, buffer = %p, cb = %p, user = %p)\n",
382 if (!pcs)
return FALSE;
403 tmp[
ptr - searchPath] = 0;
404 searchPath =
ptr + 1;
582 FIXME(
"What the heck??\n");
606 TRACE(
"(pcs = %p, full_path = %s, guid = %s, dw1 = 0x%08x, dw2 = 0x%08x, buffer = %p)\n",
617 *is_unmatched =
FALSE;
651 searchPath =
ptr + 1;
665 *is_unmatched =
TRUE;
708 const WCHAR dllsW[] = {
'\\',
'd',
'l',
'l',
's',
'\\' };
709 const WCHAR programsW[] = {
'\\',
'p',
'r',
'o',
'g',
'r',
'a',
'm',
's',
'\\' };
710 const WCHAR dot_dllW[] = {
'.',
'd',
'l',
'l',0};
711 const WCHAR dot_exeW[] = {
'.',
'e',
'x',
'e',0};
712 const WCHAR dot_soW[] = {
'.',
's',
'o',0};
735 memcpy(
end, programsW,
sizeof(programsW));
816 if (*
next !=
':')
break;
BOOL WINAPI FindNextFileW(IN HANDLE hFindFile, OUT LPWIN32_FIND_DATAW lpFindFileData)
HANDLE WINAPI FindDebugInfoFileEx(PCSTR FileName, PCSTR SymbolPath, PSTR DebugFilePath, PFIND_DEBUG_FILE_CALLBACK Callback, PVOID CallerData)
static BOOL is_sep(WCHAR ch)
#define WideCharToMultiByte
BOOL(CALLBACK * PENUMDIRTREE_CALLBACKW)(PCWSTR, PVOID)
HANDLE WINAPI FindExecutableImage(PCSTR FileName, PCSTR SymbolPath, PSTR ImageFilePath)
ACPI_SIZE strlen(const char *String)
static GLenum _GLUfuncptr fn
BOOL WINAPI EnumDirTree(HANDLE hProcess, PCSTR root, PCSTR file, PSTR buffer, PENUMDIRTREE_CALLBACK cb, PVOID user)
static const WCHAR rootW[]
struct process * process_find_by_handle(HANDLE hProcess)
int WINAPI lstrcmpW(LPCWSTR lpString1, LPCWSTR lpString2)
BOOL(CALLBACK * PFINDFILEINPATHCALLBACKW)(_In_ PCWSTR, _In_ PVOID)
static BOOL CALLBACK module_find_cb(PCWSTR buffer, PVOID user)
#define INVALID_HANDLE_VALUE
HANDLE WINAPI FindExecutableImageEx(PCSTR FileName, PCSTR SymbolPath, PSTR ImageFilePath, PFIND_EXE_FILE_CALLBACK Callback, PVOID user)
DWORD WINAPI GetLastError(VOID)
_In_ BOOL _In_ HANDLE hProcess
const WCHAR * file_name(const WCHAR *str)
BOOL(CALLBACK * PFIND_EXE_FILE_CALLBACKW)(HANDLE, PCWSTR, PVOID)
BOOL WINAPI SymMatchFileName(PCSTR file, PCSTR match, PSTR *filestop, PSTR *matchstop)
#define IMAGE_SEPARATE_DEBUG_SIGNATURE
BOOL pdb_fetch_file_info(const struct pdb_lookup *pdb_lookup, unsigned *matched) DECLSPEC_HIDDEN
static void * heap_alloc(size_t len)
GLfloat GLfloat GLfloat GLfloat h
BOOL(CALLBACK * PFIND_EXE_FILE_CALLBACK)(_In_ HANDLE, _In_ PCSTR, _In_opt_ PVOID)
GLenum GLuint GLenum GLsizei const GLchar * buf
WCHAR LoadedImageName[256]
static const char const char const char * SymbolPath
BOOL WINAPI SymFindFileInPath(HANDLE hProcess, PCSTR searchPath, PCSTR full_path, PVOID id, DWORD two, DWORD three, DWORD flags, PSTR buffer, PFINDFILEINPATHCALLBACK cb, PVOID user)
BOOL(CALLBACK * PENUMDIRTREE_CALLBACK)(_In_ PCSTR, _In_opt_ PVOID)
BOOL WINAPI SymMatchFileNameW(PCWSTR file, PCWSTR match, PWSTR *filestop, PWSTR *matchstop)
DWORD WINAPI SearchPathA(IN LPCSTR lpPath OPTIONAL, IN LPCSTR lpFileName, IN LPCSTR lpExtension OPTIONAL, IN DWORD nBufferLength, OUT LPSTR lpBuffer, OUT LPSTR *lpFilePart OPTIONAL)
BOOL WINAPI CreateDirectoryA(IN LPCSTR lpPathName, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes)
static void file_pathW(const WCHAR *src, WCHAR *dst)
BOOL WINAPI EnumDirTreeW(HANDLE hProcess, PCWSTR root, PCWSTR file, PWSTR buffer, PENUMDIRTREE_CALLBACKW cb, PVOID user)
static BOOL CALLBACK sffip_cb(PCWSTR buffer, PVOID user)
#define FILE_ATTRIBUTE_DIRECTORY
BOOL WINAPI SymFindFileInPathW(HANDLE hProcess, PCWSTR searchPath, PCWSTR full_path, PVOID id, DWORD two, DWORD three, DWORD flags, PWSTR buffer, PFINDFILEINPATHCALLBACKW cb, PVOID user)
const WCHAR * process_getenv(const struct process *process, const WCHAR *name)
_CONST_RETURN wchar_t *__cdecl wcschr(_In_z_ const wchar_t *_Str, wchar_t _Ch)
WCHAR * get_dos_file_name(const WCHAR *filename)
static BOOL CALLBACK enum_dir_treeWA(PCWSTR name, PVOID user)
#define CreateFileMappingW(a, b, c, d, e, f)
HANDLE WINAPI FindDebugInfoFile(PCSTR FileName, PCSTR SymbolPath, PSTR DebugFilePath)
GLenum GLenum GLenum GLenum mapping
BOOL search_unix_path(const WCHAR *name, const WCHAR *path, BOOL(*match)(void *, HANDLE, const WCHAR *), void *param)
BOOL WINAPI MakeSureDirectoryPathExists(PCSTR DirPath)
static BOOL do_searchW(PCWSTR file, PWSTR buffer, BOOL recurse, PENUMDIRTREE_CALLBACKW cb, PVOID user)
BOOL WINAPI SearchTreeForFile(PCSTR root, PCSTR file, PSTR buffer)
#define FILE_ATTRIBUTE_NORMAL
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
BOOL path_find_symbol_file(const struct process *pcs, const struct module *module, PCSTR full_path, enum module_type type, const GUID *guid, DWORD dw1, DWORD dw2, WCHAR *buffer, BOOL *is_unmatched)
BOOL(CALLBACK * PFIND_DEBUG_FILE_CALLBACK)(_In_ HANDLE, _In_ PCSTR, _In_ PVOID)
#define memcpy(s1, s2, n)
int _cdecl swprintf(const WCHAR *,...)
WINE_DEFAULT_DEBUG_CHANNEL(dbghelp)
PFINDFILEINPATHCALLBACKW cb
#define SYMOPT_LOAD_ANYTHING
DWORD WINAPI SearchPathW(IN LPCWSTR lpPath OPTIONAL, IN LPCWSTR lpFileName, IN LPCWSTR lpExtension OPTIONAL, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart OPTIONAL)
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
static BOOL is_sepA(char ch)
static unsigned __int64 next
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
const char * file_nameA(const char *str)
HANDLE WINAPI FindExecutableImageExW(PCWSTR FileName, PCWSTR SymbolPath, PWSTR ImageFilePath, PFIND_EXE_FILE_CALLBACKW Callback, PVOID user)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
static LPCWSTR LPCWSTR LPCWSTR env
#define MultiByteToWideChar
char * strchr(const char *String, int ch)
static HMODULE MODULEINFO DWORD cb
#define ERROR_ALREADY_EXISTS
GLuint GLuint GLsizei GLenum type
#define CreateFileA(a, b, c, d, e, f, g)
BOOL(CALLBACK * PFINDFILEINPATHCALLBACK)(_In_ PCSTR, _In_ PVOID)
static const WCHAR fileW[]
BOOL search_dll_path(const struct process *process, const WCHAR *name, BOOL(*match)(void *, HANDLE, const WCHAR *), void *param)
IMAGEHLP_MODULEW64 module
WCHAR *CDECL wine_get_dos_file_name(LPCSTR str)
void user(int argc, const char *argv[])
BOOL WINAPI SearchTreeForFileW(PCWSTR root, PCWSTR file, PWSTR buffer)
static BOOL heap_free(void *mem)
HANDLE WINAPI FindFirstFileW(IN LPCWSTR lpFileName, OUT LPWIN32_FIND_DATAW lpFindFileData)
BOOL WINAPI FindClose(HANDLE hFindFile)