winedbg: Display a valid source file when reporting an error about a missing source file.

This commit is contained in:
Eric Pouech 2011-03-15 22:26:55 +01:00 committed by Alexandre Julliard
parent 77eefaed58
commit 1adbe82601
1 changed files with 24 additions and 16 deletions

View File

@ -199,31 +199,39 @@ static int source_display(const char* sourcefile, int start, int end)
if (dbg_interactiveP)
{
char zbuf[256];
for (;;)
{
size_t len;
/*
* Still couldn't find it. Ask user for path to add.
*/
snprintf(zbuf, sizeof(zbuf), "Enter path to file '%s': ", sourcefile);
snprintf(zbuf, sizeof(zbuf), "Enter path to file '%s' (<cr> to end search): ", sourcefile);
input_read_line(zbuf, tmppath, sizeof(tmppath));
if (!(len = strlen(tmppath))) break;
if (tmppath[strlen(tmppath) - 1] != '/')
/* append '/' if missing at the end */
if (tmppath[len - 1] != '/' && tmppath[len - 1] != '\\')
tmppath[len++] = '/';
strcpy(&tmppath[len], basename);
if (GetFileAttributesA(tmppath) != INVALID_FILE_ATTRIBUTES)
break;
dbg_printf("Unable to access file '%s'\n", tmppath);
}
}
else
{
strcat(tmppath, "/");
dbg_printf("Unable to access file '%s'\n", sourcefile);
tmppath[0] = '\0';
}
/*
* Now append the base file name.
*/
strcat(tmppath, basename);
}
else tmppath[0] = '\0';
if (GetFileAttributesA(tmppath) == INVALID_FILE_ATTRIBUTES)
if (!tmppath[0])
{
/*
* OK, I guess the user doesn't really want to see it
* after all.
*/
ol = source_add_file(sourcefile, NULL);
dbg_printf("Unable to open file '%s'\n", tmppath);
return FALSE;
}
}