summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xplugins/New_GPG/src/gpg_wrapper.cpp8
-rwxr-xr-xplugins/New_GPG/src/main.cpp4
-rwxr-xr-xplugins/New_GPG/src/utilities.cpp8
3 files changed, 12 insertions, 8 deletions
diff --git a/plugins/New_GPG/src/gpg_wrapper.cpp b/plugins/New_GPG/src/gpg_wrapper.cpp
index 1f2e6090fe..57f8d79205 100755
--- a/plugins/New_GPG/src/gpg_wrapper.cpp
+++ b/plugins/New_GPG/src/gpg_wrapper.cpp
@@ -62,7 +62,7 @@ pxResult pxExecute(std::vector<std::wstring> &aargv, string *aoutput, LPDWORD ae
if(bDebugLog)
{
std::wstring args;
- for(int i = 0; i < argv.size(); ++i)
+ for(unsigned int i = 0; i < argv.size(); ++i)
{
args += argv[i];
args += L" ";
@@ -79,10 +79,10 @@ pxResult pxExecute(std::vector<std::wstring> &aargv, string *aoutput, LPDWORD ae
file_descriptor_sink sout(pout.sink, close_handle);
file_descriptor_sink serr(perr.sink, close_handle);
- char *mir_path = new char [MAX_PATH];
- PathToAbsolute("\\", mir_path);
+ TCHAR *mir_path = new TCHAR [MAX_PATH];
+ PathToAbsoluteW(_T("\\"), mir_path);
- c = new child(execute(set_args(argv), bind_stdout(sout), bind_stderr(serr), close_stdin(),/*bind_stdin(sin),*/ show_window(SW_HIDE), hide_console(), inherit_env(), set_env(env), start_in_dir(toUTF16(mir_path))));
+ c = new child(execute(set_args(argv), bind_stdout(sout), bind_stderr(serr), close_stdin(),/*bind_stdin(sin),*/ show_window(SW_HIDE), hide_console(), inherit_env(), set_env(env), start_in_dir(mir_path)));
_child = c;
delete [] mir_path;
diff --git a/plugins/New_GPG/src/main.cpp b/plugins/New_GPG/src/main.cpp
index cf37f2482c..8c653b32f8 100755
--- a/plugins/New_GPG/src/main.cpp
+++ b/plugins/New_GPG/src/main.cpp
@@ -2013,7 +2013,11 @@ void FirstRun()
void InitCheck()
{
{//parse gpg output
+ TCHAR *current_home = UniGetContactSettingUtf(NULL, szGPGModuleName, "szHomePath", _T(""));
+ db_set_ts(NULL, szGPGModuleName, "szHomePath", _T("")); //we do not need home for gpg binary validation
gpg_valid = isGPGValid();
+ db_set_ts(NULL, szGPGModuleName, "szHomePath", current_home); //return current home dir back
+ mir_free(current_home);
bool home_dir_access = false, temp_access = false;
TCHAR *home_dir = UniGetContactSettingUtf(NULL, szGPGModuleName, "szHomePath", _T(""));
std::wstring test_path = home_dir;
diff --git a/plugins/New_GPG/src/utilities.cpp b/plugins/New_GPG/src/utilities.cpp
index ef3d0977e8..6fddc89a2e 100755
--- a/plugins/New_GPG/src/utilities.cpp
+++ b/plugins/New_GPG/src/utilities.cpp
@@ -1129,10 +1129,10 @@ bool isGPGValid()
mir_free(tmp);
tmp = NULL;
TCHAR *path = (TCHAR*)mir_alloc(sizeof(TCHAR)*MAX_PATH);
- char *mir_path = (char*)mir_alloc(MAX_PATH);
- PathToAbsolute("\\", mir_path);
- SetCurrentDirectoryA(mir_path);
- tmp = mir_a2t(mir_path);
+ TCHAR *mir_path = (TCHAR*)mir_alloc(MAX_PATH * sizeof(TCHAR));
+ PathToAbsoluteW(_T("\\"), mir_path);
+ SetCurrentDirectoryW(mir_path);
+ tmp = mir_tstrdup(mir_path);
mir_free(mir_path);
//mir_realloc(path, (_tcslen(path)+64)*sizeof(TCHAR));
TCHAR *gpg_path = (TCHAR*)mir_alloc(sizeof(TCHAR)*MAX_PATH);