Commit 6f84b1c6 authored by Eric Pouech's avatar Eric Pouech Committed by Alexandre Julliard

winedbg: Try harder to locate a source file.

parent b0a7c55c
......@@ -122,6 +122,32 @@ static struct open_file_list* source_search_open_file(const char* name)
return ol;
}
static BOOL source_locate_file(const char* srcfile, char* path)
{
BOOL found = FALSE;
if (GetFileAttributes(srcfile) != INVALID_FILE_ATTRIBUTES)
{
strcpy(path, srcfile);
found = TRUE;
}
else if (search_path)
{
const char* spath;
spath = srcfile;
while (!found)
{
spath = strchr(spath, '\\');
if (!spath) spath = strchr(spath, '/');
if (!spath) break;
spath++;
found = SearchPathA(search_path, spath, NULL, MAX_PATH, path, NULL);
}
}
return found;
}
static int source_display(const char* sourcefile, int start, int end)
{
char* addr;
......@@ -158,9 +184,7 @@ static int source_display(const char* sourcefile, int start, int end)
/*
* Crapola. We need to try and open the file.
*/
strcpy(tmppath, sourcefile);
if (GetFileAttributes(sourcefile) == INVALID_FILE_ATTRIBUTES &&
(!search_path || !SearchPathA(search_path, sourcefile, NULL, MAX_PATH, tmppath, NULL)))
if (!source_locate_file(sourcefile, tmppath))
{
if (dbg_interactiveP)
{
......@@ -180,6 +204,7 @@ static int source_display(const char* sourcefile, int start, int end)
*/
strcat(tmppath, basename);
}
else tmppath[0] = '\0';
if (GetFileAttributes(tmppath) == INVALID_FILE_ATTRIBUTES)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment