34static 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;
710 const WCHAR dllsW[] = {
'\\',
'd',
'l',
'l',
's',
'\\' };
711 const WCHAR programsW[] = {
'\\',
'p',
'r',
'o',
'g',
'r',
'a',
'm',
's',
'\\' };
712 const WCHAR dot_dllW[] = {
'.',
'd',
'l',
'l',0};
713 const WCHAR dot_exeW[] = {
'.',
'e',
'x',
'e',0};
714 const WCHAR dot_soW[] = {
'.',
's',
'o',0};
737 memcpy(
end, programsW,
sizeof(programsW));
818 if (*
next !=
':')
break;
ACPI_SIZE strlen(const char *String)
char * strchr(const char *String, int ch)
static void * heap_alloc(size_t len)
static BOOL heap_free(void *mem)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
void user(int argc, const char *argv[])
static LPCWSTR LPCWSTR LPCWSTR env
BOOL(CALLBACK * PFIND_DEBUG_FILE_CALLBACK)(_In_ HANDLE, _In_ PCSTR, _In_ PVOID)
BOOL(CALLBACK * PENUMDIRTREE_CALLBACK)(_In_ PCSTR, _In_opt_ PVOID)
BOOL(CALLBACK * PFINDFILEINPATHCALLBACK)(_In_ PCSTR, _In_ PVOID)
BOOL(CALLBACK * PFIND_EXE_FILE_CALLBACK)(_In_ HANDLE, _In_ PCSTR, _In_opt_ PVOID)
BOOL(CALLBACK * PFINDFILEINPATHCALLBACKW)(_In_ PCWSTR, _In_ PVOID)
BOOL pdb_fetch_file_info(const struct pdb_lookup *pdb_lookup, unsigned *matched) DECLSPEC_HIDDEN
static const WCHAR rootW[]
BOOL(CALLBACK * PFIND_EXE_FILE_CALLBACKW)(HANDLE, PCWSTR, PVOID)
#define FindExecutableImageExW
#define INVALID_HANDLE_VALUE
#define CreateFileMappingW(a, b, c, d, e, f)
#define CreateFileA(a, b, c, d, e, f, g)
#define SYMOPT_LOAD_ANYTHING
#define wine_get_dos_file_name(__x)
#define FILE_ATTRIBUTE_NORMAL
#define WideCharToMultiByte
BOOL(CALLBACK * PENUMDIRTREE_CALLBACKW)(PCWSTR, PVOID)
#define MultiByteToWideChar
#define IMAGE_SEPARATE_DEBUG_SIGNATURE
struct process * process_find_by_handle(HANDLE hProcess)
const WCHAR * process_getenv(const struct process *process, const WCHAR *name)
static BOOL CALLBACK sffip_cb(PCWSTR buffer, PVOID user)
static BOOL is_sep(WCHAR ch)
WCHAR * get_dos_file_name(const WCHAR *filename)
BOOL WINAPI SearchTreeForFile(PCSTR root, PCSTR file, PSTR buffer)
BOOL WINAPI MakeSureDirectoryPathExists(PCSTR DirPath)
BOOL WINAPI SymFindFileInPath(HANDLE hProcess, PCSTR searchPath, PCSTR full_path, PVOID id, DWORD two, DWORD three, DWORD flags, PSTR buffer, PFINDFILEINPATHCALLBACK cb, PVOID user)
static BOOL CALLBACK module_find_cb(PCWSTR buffer, PVOID user)
BOOL search_dll_path(const struct process *process, const WCHAR *name, BOOL(*match)(void *, HANDLE, const WCHAR *), void *param)
BOOL WINAPI SymMatchFileNameW(PCWSTR file, PCWSTR match, PWSTR *filestop, PWSTR *matchstop)
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 WINAPI SearchTreeForFileW(PCWSTR root, PCWSTR file, PWSTR buffer)
BOOL WINAPI EnumDirTreeW(HANDLE hProcess, PCWSTR root, PCWSTR file, PWSTR buffer, PENUMDIRTREE_CALLBACKW cb, PVOID user)
static BOOL is_sepA(char ch)
const char * file_nameA(const char *str)
static BOOL do_searchW(PCWSTR file, PWSTR buffer, BOOL recurse, PENUMDIRTREE_CALLBACKW cb, PVOID user)
HANDLE WINAPI FindExecutableImageEx(PCSTR FileName, PCSTR SymbolPath, PSTR ImageFilePath, PFIND_EXE_FILE_CALLBACK Callback, PVOID user)
BOOL WINAPI SymFindFileInPathW(HANDLE hProcess, PCWSTR searchPath, PCWSTR full_path, PVOID id, DWORD two, DWORD three, DWORD flags, PWSTR buffer, PFINDFILEINPATHCALLBACKW cb, PVOID user)
BOOL search_unix_path(const WCHAR *name, const WCHAR *path, BOOL(*match)(void *, HANDLE, const WCHAR *), void *param)
HANDLE WINAPI FindDebugInfoFile(PCSTR FileName, PCSTR SymbolPath, PSTR DebugFilePath)
BOOL WINAPI EnumDirTree(HANDLE hProcess, PCSTR root, PCSTR file, PSTR buffer, PENUMDIRTREE_CALLBACK cb, PVOID user)
HANDLE WINAPI FindExecutableImage(PCSTR FileName, PCSTR SymbolPath, PSTR ImageFilePath)
BOOL WINAPI SymMatchFileName(PCSTR file, PCSTR match, PSTR *filestop, PSTR *matchstop)
HANDLE WINAPI FindDebugInfoFileEx(PCSTR FileName, PCSTR SymbolPath, PSTR DebugFilePath, PFIND_DEBUG_FILE_CALLBACK Callback, PVOID CallerData)
static void file_pathW(const WCHAR *src, WCHAR *dst)
BOOL WINAPI CreateDirectoryA(IN LPCSTR lpPathName, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes)
HANDLE WINAPI FindFirstFileW(IN LPCWSTR lpFileName, OUT LPWIN32_FIND_DATAW lpFindFileData)
BOOL WINAPI FindClose(HANDLE hFindFile)
BOOL WINAPI FindNextFileW(IN HANDLE hFindFile, OUT LPWIN32_FIND_DATAW lpFindFileData)
DWORD WINAPI SearchPathA(IN LPCSTR lpPath OPTIONAL, IN LPCSTR lpFileName, IN LPCSTR lpExtension OPTIONAL, IN DWORD nBufferLength, OUT LPSTR lpBuffer, OUT LPSTR *lpFilePart OPTIONAL)
DWORD WINAPI SearchPathW(IN LPCWSTR lpPath OPTIONAL, IN LPCWSTR lpFileName, IN LPCWSTR lpExtension OPTIONAL, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart OPTIONAL)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
static const WCHAR fileW[]
GLuint GLuint GLsizei GLenum type
GLenum GLuint GLenum GLsizei const GLchar * buf
GLenum GLenum GLenum GLenum mapping
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
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
_In_ BOOL _In_ HANDLE hProcess
#define memcpy(s1, s2, n)
#define ERROR_ALREADY_EXISTS
static const char const char const char * SymbolPath
static HMODULE MODULEINFO DWORD cb
#define FILE_ATTRIBUTE_DIRECTORY
static unsigned __int64 next
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
WCHAR LoadedImageName[256]
IMAGEHLP_MODULEW64 module
PFINDFILEINPATHCALLBACKW cb
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
static GLenum _GLUfuncptr fn
DWORD WINAPI GetLastError(void)