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) while (Category->Apps)
{ {
if(StrCmpW(Category->Apps->Name, Dependency) == 0) if(StrCmpW(Category->Apps->RegName, Dependency) == 0)
return Category->Apps; return Category->Apps;
Category->Apps = Category->Apps->Next; Category->Apps = Category->Apps->Next;
} }
@ -721,16 +721,17 @@ WndProc (HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
{ {
AppToInstall = SelectedApplication; AppToInstall = SelectedApplication;
SelectedApplication = GetDependency(SelectedApplication->Depends); SelectedApplication = GetDependency(SelectedApplication->Depends);
if (!IsApplicationInstalled(SelectedApplication)) if (SelectedApplication)
{ 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)
{ {
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; SelectedApplication = AppToInstall;
} }