diff options
Diffstat (limited to 'main.cpp')
-rw-r--r-- | main.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
@@ -401,10 +401,18 @@ static BOOL CALLBACK DlgProcGpgBinOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LP case WM_INITDIALOG: { TranslateDialogDefault(hwndDlg); - tmp = UniGetContactSettingUtf(NULL, szGPGModuleName, "szGpgBinPath", _T("")); + TCHAR *path = new TCHAR [MAX_PATH]; + DWORD len = MAX_PATH; + tmp = UniGetContactSettingUtf(NULL, szGPGModuleName, "szGpgBinPath", (SHGetValue(HKEY_CURRENT_USER, _T("Software\\GNU\\GnuPG\\gpgProgram"), 0, 0, path, &len) == ERROR_SUCCESS)?path:_T("")); + delete [] path; SetDlgItemText(hwndDlg, IDC_BIN_PATH, tmp); mir_free(tmp); - tmp = UniGetContactSettingUtf(NULL, szGPGModuleName, "szHomePath", _T("")); + path = new TCHAR [MAX_PATH]; + ExpandEnvironmentStrings(_T("%APPDATA%"), path, MAX_PATH); + wstring path_ = path; + delete [] path; + path_ += _T("\\GnuPG"); + tmp = UniGetContactSettingUtf(NULL, szGPGModuleName, "szHomePath", (TCHAR*)path_.c_str()); SetDlgItemText(hwndDlg, IDC_HOME_DIR, tmp); mir_free(tmp); return TRUE; |