From 0f4fb60ad8da3ce7d3d567cf8578b87bb59b9184 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20P=C3=B6sel?= Date: Sun, 11 Sep 2016 04:40:44 +0000 Subject: New_GPG: Fix unicode paths handling (fixes #349); versiom bump git-svn-id: http://svn.miranda-ng.org/main/trunk@17278 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/New_GPG/src/options.cpp | 31 +++++++++++-------------------- 1 file changed, 11 insertions(+), 20 deletions(-) (limited to 'plugins/New_GPG/src/options.cpp') diff --git a/plugins/New_GPG/src/options.cpp b/plugins/New_GPG/src/options.cpp index 4baaa264b1..8cf20a395a 100755 --- a/plugins/New_GPG/src/options.cpp +++ b/plugins/New_GPG/src/options.cpp @@ -424,7 +424,7 @@ static INT_PTR CALLBACK DlgProcGpgBinOpts(HWND hwndDlg, UINT msg, WPARAM wParam, case IDC_SET_BIN_PATH: { GetFilePath(TranslateT("Choose gpg.exe"), "szGpgBinPath", L"*.exe", TranslateT("EXE Executables")); - wchar_t *tmp = UniGetContactSettingUtf(NULL, szGPGModuleName, "szGpgBinPath", L"gpg.exe"); + CMStringW tmp(ptrW(UniGetContactSettingUtf(NULL, szGPGModuleName, "szGpgBinPath", L"gpg.exe"))); SetDlgItemText(hwndDlg, IDC_BIN_PATH, tmp); bool gpg_exists = false; { @@ -463,34 +463,25 @@ static INT_PTR CALLBACK DlgProcGpgBinOpts(HWND hwndDlg, UINT msg, WPARAM wParam, MessageBox(0, TranslateT("Unsupported GnuPG version found, use at you own risk!\nIt is recommended that you use GnuPG v1.x.x with this plugin."), L"Warning", MB_OK); */ } } - char mir_path[MAX_PATH]; - char *atmp = mir_u2a(tmp); - mir_free(tmp); - PathToAbsolute("\\", mir_path); - char* p_path = NULL; - if (StriStr(atmp, mir_path)) { - p_path = atmp + mir_strlen(mir_path); - tmp = mir_a2u(p_path); - SetDlgItemText(hwndDlg, IDC_BIN_PATH, tmp); + wchar_t mir_path[MAX_PATH]; + PathToAbsoluteW(L"\\", mir_path); + if (tmp.Find(mir_path, 0) == 0) { + CMStringW path = tmp.Mid(mir_wstrlen(mir_path)); + SetDlgItemText(hwndDlg, IDC_BIN_PATH, path); } } break; case IDC_SET_HOME_DIR: { GetFolderPath(TranslateT("Set home directory"), "szHomePath"); - wchar_t *tmp = UniGetContactSettingUtf(NULL, szGPGModuleName, "szHomePath", L""); + CMStringW tmp(ptrW(UniGetContactSettingUtf(NULL, szGPGModuleName, "szHomePath", L""))); SetDlgItemText(hwndDlg, IDC_HOME_DIR, tmp); - char mir_path[MAX_PATH]; - char *atmp = mir_u2a(tmp); - mir_free(tmp); - PathToAbsolute("\\", mir_path); - char* p_path = NULL; - if (StriStr(atmp, mir_path)) { - p_path = atmp + mir_strlen(mir_path); - tmp = mir_a2u(p_path); + wchar_t mir_path[MAX_PATH]; + PathToAbsoluteW(L"\\", mir_path); + if (tmp.Find(mir_path, 0) == 0) { + CMStringW path = tmp.Mid(mir_wstrlen(mir_path)); SetDlgItemText(hwndDlg, IDC_HOME_DIR, tmp); } - mir_free(atmp); } break; default: -- cgit v1.2.3