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