From 4473df2e660c9767d680daeeb8442378f516f89e Mon Sep 17 00:00:00 2001 From: Christoph von Wittich Date: Thu, 26 Jul 2007 14:56:01 +0000 Subject: [PATCH] get sysdm to work with freeldr.ini as well See issue #2302 for more details. svn path=/trunk/; revision=27846 --- reactos/dll/cpl/sysdm/startrec.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/reactos/dll/cpl/sysdm/startrec.c b/reactos/dll/cpl/sysdm/startrec.c index 5784393065f..84e75386ea6 100644 --- a/reactos/dll/cpl/sysdm/startrec.c +++ b/reactos/dll/cpl/sysdm/startrec.c @@ -12,6 +12,8 @@ #include "precomp.h" static TCHAR m_szFreeldrIni[MAX_PATH + 15]; +static TCHAR szBootLdrSection[12]; +static TCHAR szBootLdrDefault[10]; void SetTimeout(HWND hwndDlg, int Timeout) { @@ -72,6 +74,7 @@ StartRecDlgProc(HWND hwndDlg, FailGetSysDrive: HeapFree(GetProcessHeap(), 0, szSystemDrive); szSystemDrive = NULL; + return FALSE; } if (szSystemDrive != NULL) @@ -84,22 +87,32 @@ FailGetSysDrive: { _tcscpy(m_szFreeldrIni, szSystemDrive); _tcscat(m_szFreeldrIni, _T("\\boot.ini")); + _tcscpy(szBootLdrSection, _T("boot loader")); + _tcscpy(szBootLdrDefault, _T("default")); + } + else + { + _tcscpy(szBootLdrSection, _T("FREELOADER")); + _tcscpy(szBootLdrDefault, _T("DefaultOS")); } } HeapFree(GetProcessHeap(), 0, szSystemDrive); } } + if (m_szFreeldrIni == NULL) + return FALSE; + SetDlgItemText(hwndDlg, IDC_STRRECDUMPFILE, _T("%SystemRoot%\\MiniDump")); /* load settings from freeldr.ini */ - GetPrivateProfileString(_T("boot loader"), _T("default"), NULL, szDefaultOS, MAX_PATH, m_szFreeldrIni); + GetPrivateProfileString(szBootLdrSection, szBootLdrDefault, NULL, szDefaultOS, MAX_PATH, m_szFreeldrIni); GetPrivateProfileString(_T("operating systems"), szDefaultOS, NULL, szDefaultOSName, MAX_PATH, m_szFreeldrIni); SendDlgItemMessage(hwndDlg, IDC_STRECOSCOMBO, CB_ADDSTRING, (WPARAM)0, (LPARAM)szDefaultOSName); SendDlgItemMessage(hwndDlg, IDC_STRECOSCOMBO, CB_SETCURSEL, (WPARAM)0, (LPARAM)0); /* timeout */ - iTimeout = GetPrivateProfileInt(_T("boot loader"), _T("timeout"), 0, m_szFreeldrIni); + iTimeout = GetPrivateProfileInt(szBootLdrSection, _T("timeout"), 0, m_szFreeldrIni); SetTimeout(hwndDlg, iTimeout); if (iTimeout != 0) SendDlgItemMessage(hwndDlg, IDC_STRECLIST, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0); @@ -124,7 +137,7 @@ FailGetSysDrive: else iTimeout = 0; _stprintf(szTimeout, _T("%i"), iTimeout); - WritePrivateProfileString(_T("boot loader"), _T("timeout"), szTimeout, m_szFreeldrIni); + WritePrivateProfileString(szBootLdrSection, _T("timeout"), szTimeout, m_szFreeldrIni); } case IDCANCEL: {