Fixed two bugs (this fixes Diablo II download) :

- Check if returned structure for dependency is null, to avoid crash
- Compare good fields to get dependency. According to xml file, it's regname that should be used.

svn path=/trunk/; revision=31897
This commit is contained in:
Pierre Schweitzer 2008-01-19 21:32:39 +00:00
parent 9e2b8d350c
commit b83306cd61

View file

@ -654,7 +654,7 @@ struct Application* GetDependency(const WCHAR* Dependency)
{
while (Category->Apps)
{
if(StrCmpW(Category->Apps->Name, Dependency) == 0)
if(StrCmpW(Category->Apps->RegName, Dependency) == 0)
return Category->Apps;
Category->Apps = Category->Apps->Next;
}
@ -721,16 +721,17 @@ WndProc (HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
AppToInstall = SelectedApplication;
SelectedApplication = GetDependency(SelectedApplication->Depends);
if (!IsApplicationInstalled(SelectedApplication))
{
LoadString(GetModuleHandle(NULL), IDS_INSTALL_DEP, InstallDep, sizeof(InstallDep) / sizeof(WCHAR));
LoadString(GetModuleHandle(NULL), IDS_WINDOW_TITLE, Title, sizeof(Title) / sizeof(WCHAR));
_snwprintf(InstallDepBuffer, sizeof(InstallDepBuffer) / sizeof(WCHAR), InstallDep, SelectedApplication->Name, AppToInstall->Name, SelectedApplication->Name);
if (MessageBox(hwnd, InstallDepBuffer, Title, MB_YESNO | MB_ICONINFORMATION) == IDYES)
if (SelectedApplication)
if (!IsApplicationInstalled(SelectedApplication))
{
DialogBoxW(GetModuleHandle(NULL), MAKEINTRESOURCEW(IDD_DOWNLOAD), 0, DownloadProc);
LoadString(GetModuleHandle(NULL), IDS_INSTALL_DEP, InstallDep, sizeof(InstallDep) / sizeof(WCHAR));
LoadString(GetModuleHandle(NULL), IDS_WINDOW_TITLE, Title, sizeof(Title) / sizeof(WCHAR));
_snwprintf(InstallDepBuffer, sizeof(InstallDepBuffer) / sizeof(WCHAR), InstallDep, SelectedApplication->Name, AppToInstall->Name, SelectedApplication->Name);
if (MessageBox(hwnd, InstallDepBuffer, Title, MB_YESNO | MB_ICONINFORMATION) == IDYES)
{
DialogBoxW(GetModuleHandle(NULL), MAKEINTRESOURCEW(IDD_DOWNLOAD), 0, DownloadProc);
}
}
}
SelectedApplication = AppToInstall;
}