From e30fe64cf886f220224451eaa6cbf7bcedd230fc Mon Sep 17 00:00:00 2001 From: Gluzskiy Alexandr Date: Sun, 29 Aug 2010 03:29:09 +0300 Subject: bgg ) --- options.cpp | 186 +++++++++++++++++++++++++++++++----------------------------- 1 file changed, 95 insertions(+), 91 deletions(-) (limited to 'options.cpp') diff --git a/options.cpp b/options.cpp index c8e7777..7104f5e 100644 --- a/options.cpp +++ b/options.cpp @@ -136,7 +136,7 @@ static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA { TCHAR *name = (TCHAR*)CallService(MS_CLIST_GETCONTACTDISPLAYNAME, (WPARAM)hContact, GCDNF_TCHAR); item.mask = LVIF_TEXT; - item.iItem = i; +// item.iItem = i; item.iSubItem = 0; item.pszText = name; iRow = ListView_InsertItem(hwndList, &item); @@ -168,8 +168,8 @@ static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA ListView_SetColumnWidth(hwndList, 2, LVSCW_AUTOSIZE); ListView_SetColumnWidth(hwndList, 3, LVSCW_AUTOSIZE); ListView_SetColumnWidth(hwndList, 4, LVSCW_AUTOSIZE); - } - i++; + i++; + } } tmp = UniGetContactSettingUtf(NULL, szGPGModuleName, "szLogFilePath", _T("")); SetDlgItemText(hwndDlg, IDC_LOG_FILE_EDIT, (_tcslen(tmp) > 1)?tmp:_T("c:\\GPGdebug.log")); @@ -193,21 +193,25 @@ static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA char *tmp; bool keep = false; bool ismetacontact = false; - HANDLE meta = NULL, hContact = user_data[item_num+1]; + HANDLE meta = NULL; + HANDLE hContact = user_data[item_num+1]; if(isProtoMetaContacts(hContact)) { meta = hContact; hContact = metaGetMostOnline(hContact); ismetacontact = true; } - else if((meta = metaGetContact(hContact)) != NULL) + else if((meta = metaGetContact(user_data[item_num+1])) != NULL) + { + hContact = metaGetMostOnline(meta); ismetacontact = true; + } tmp = UniGetContactSettingUtf(hContact, szGPGModuleName, "KeyID", ""); - for(HANDLE hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDFIRST, 0, 0); hContact != NULL; hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDNEXT, (WPARAM)hContact, 0)) + for(HANDLE hcnttmp = (HANDLE)CallService(MS_DB_CONTACT_FINDFIRST, 0, 0); hcnttmp != NULL; hcnttmp = (HANDLE)CallService(MS_DB_CONTACT_FINDNEXT, (WPARAM)hcnttmp, 0)) { - if(hContact != user_data[item_num+1]) + if(hcnttmp != hContact) { - char *tmp2 = UniGetContactSettingUtf(hContact, szGPGModuleName, "KeyID", ""); + char *tmp2 = UniGetContactSettingUtf(hcnttmp, szGPGModuleName, "KeyID", ""); if(!strcmp(tmp, tmp2)) { mir_free(tmp2); @@ -225,26 +229,26 @@ static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA DWORD exitcode; cmd += _T(" --batch --yes --delete-key "); ptmp = mir_a2t(tmp); - cmd += ptmp; - mir_free(ptmp); - gpg_execution_params params; - pxResult result; - params.cmd = &cmd; - params.useless = ""; - params.out = &output; - params.code = &exitcode; - params.result = &result; - HANDLE gpg_thread = mir_forkthread(pxEexcute_thread, (void*)¶ms); - if(WaitForSingleObject(gpg_thread, 10000) == WAIT_TIMEOUT) - { - TerminateThread(gpg_thread, 0); - MessageBox(0, _T("GPG execution timed out, aborted"), _T(""), MB_OK); - } - if(result == pxNotFound) - { + cmd += ptmp; + mir_free(ptmp); + gpg_execution_params params; + pxResult result; + params.cmd = &cmd; + params.useless = ""; + params.out = &output; + params.code = &exitcode; + params.result = &result; + HANDLE gpg_thread = mir_forkthread(pxEexcute_thread, (void*)¶ms); + if(WaitForSingleObject(gpg_thread, 10000) == WAIT_TIMEOUT) + { + TerminateThread(gpg_thread, 0); + MessageBox(0, _T("GPG execution timed out, aborted"), _T(""), MB_OK); + } + if(result == pxNotFound) + { MessageBox(0, _T("Set path to gpg.exe first!"), _T("Warning"), MB_OK); mir_free(tmp); - break; + break; } if(output.find("--delete-secret-keys") != string::npos) MessageBoxA(0, "we have secret key for this public key, do not removing from GPG keyring", "info", MB_OK); @@ -353,7 +357,7 @@ static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA DBWriteContactSettingByte(user_data[i+1], szGPGModuleName, "GPGEncryption", 1); else DBWriteContactSettingByte(user_data[i+1], szGPGModuleName, "GPGEncryption", 0); - item_num = hdr->iItem; + item_num = i; setClistIcon(user_data[i+1]); setSrmmIcon(user_data[i+1]); } @@ -676,24 +680,24 @@ static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LP cmd += _T(" --batch "); cmd += _T(" --import \""); cmd += tmp2; - cmd += _T("\""); - } - gpg_execution_params params; - pxResult result; - params.cmd = &cmd; - params.useless = ""; - params.out = &output; - params.code = &exitcode; - params.result = &result; - HANDLE gpg_thread = mir_forkthread(pxEexcute_thread, (void*)¶ms); - if(WaitForSingleObject(gpg_thread, 10000) == WAIT_TIMEOUT) - { - TerminateThread(gpg_thread, 0); - MessageBox(0, _T("GPG execution timed out, aborted"), _T(""), MB_OK); - } - if(result == pxNotFound) + cmd += _T("\""); + } + gpg_execution_params params; + pxResult result; + params.cmd = &cmd; + params.useless = ""; + params.out = &output; + params.code = &exitcode; + params.result = &result; + HANDLE gpg_thread = mir_forkthread(pxEexcute_thread, (void*)¶ms); + if(WaitForSingleObject(gpg_thread, 10000) == WAIT_TIMEOUT) { - MessageBox(0, _T("Set path to gpg.exe first!"), _T("Warning"), MB_OK); + TerminateThread(gpg_thread, 0); + MessageBox(0, _T("GPG execution timed out, aborted"), _T(""), MB_OK); + } + if(result == pxNotFound) + { + MessageBox(0, _T("Set path to gpg.exe first!"), _T("Warning"), MB_OK); break; } mir_free(begin); @@ -728,9 +732,9 @@ static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LP break; } char *tmp2; - string::size_type s = output.find("gpg: key ") + strlen("gpg: key "); - string::size_type s2 = output.find(":", s); - tmp2 = new char [output.substr(s,s2-s).length()+1]; + string::size_type s = output.find("gpg: key ") + strlen("gpg: key "); + string::size_type s2 = output.find(":", s); + tmp2 = new char [output.substr(s,s2-s).length()+1]; strcpy(tmp2, output.substr(s,s2-s).c_str()); mir_utf8decode(tmp2, 0); { @@ -760,8 +764,8 @@ static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LP mir_free(tmp); s2+=2; s = output.find("\"", s2)-1; - if(s != s2-1) - { + if(s != s2-1) + { tmp2 = new char [output.substr(s2,s-s2).length()+1]; strcpy(tmp2, output.substr(s2,s-s2).c_str()); mir_utf8decode(tmp2, 0); @@ -790,8 +794,8 @@ static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LP } s+=2; if((s2 = output.find("(", s)) == string::npos) - s2 = output.find("<", s); - tmp2 = new char [output.substr(s,s2-s-1).length()+1]; + s2 = output.find("<", s); + tmp2 = new char [output.substr(s,s2-s-1).length()+1]; strcpy(tmp2, output.substr(s,s2-s-1).c_str()); mir_utf8decode(tmp2, 0); if(hContact) @@ -824,7 +828,7 @@ static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LP s = output.find(">", s2); s2++; if(output[s] == ')') - { + { tmp2 = new char [output.substr(s2,s-s2).length()+1]; strcpy(tmp2, output.substr(s2,s-s2).c_str()); mir_utf8decode(tmp2, 0); @@ -851,7 +855,7 @@ static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LP } mir_free(tmp2); s+=3; - s2 = output.find(">", s); + s2 = output.find(">", s); tmp2 = new char [output.substr(s,s2-s).length()+1]; strcpy(tmp2, output.substr(s,s2-s).c_str()); mir_utf8decode(tmp2, 0); @@ -883,7 +887,7 @@ static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LP mir_free(tmp); } else - { + { tmp2 = new char [output.substr(s2,s-s2).length()+1]; strcpy(tmp2, output.substr(s2,s-s2).c_str()); mir_utf8decode(tmp2, 0); @@ -922,39 +926,39 @@ static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LP ListView_SetColumnWidth(hwndList_p, 3, LVSCW_AUTOSIZE); } } - if(!hContact) - { - char *tmp = UniGetContactSettingUtf(hContact, szGPGModuleName, "KeyID", ""); - TCHAR *fp = mir_a2t(tmp); - mir_free(tmp); - { - string out; - DWORD code; - wstring cmd = _T("--batch -a --export "); - cmd += fp; - mir_free(fp); - gpg_execution_params params; - pxResult result; - params.cmd = &cmd; - params.useless = ""; - params.out = &out; - params.code = &code; - params.result = &result; - HANDLE gpg_thread = mir_forkthread(pxEexcute_thread, (void*)¶ms); - if(WaitForSingleObject(gpg_thread, 10000) == WAIT_TIMEOUT) - { - TerminateThread(gpg_thread, 0); - MessageBox(0, _T("GPG execution timed out, aborted"), _T(""), MB_OK); - } - if(result == pxNotFound) - { - MessageBox(0, _T("Set path to gpg.exe first!"), _T("Warning"), MB_OK); - break; - } - string::size_type s = 0; - while((s = out.find("\r", s)) != string::npos) - { - out.erase(s, 1); + if(!hContact) + { + char *tmp = UniGetContactSettingUtf(hContact, szGPGModuleName, "KeyID", ""); + TCHAR *fp = mir_a2t(tmp); + mir_free(tmp); + { + string out; + DWORD code; + wstring cmd = _T("--batch -a --export "); + cmd += fp; + mir_free(fp); + gpg_execution_params params; + pxResult result; + params.cmd = &cmd; + params.useless = ""; + params.out = &out; + params.code = &code; + params.result = &result; + HANDLE gpg_thread = mir_forkthread(pxEexcute_thread, (void*)¶ms); + if(WaitForSingleObject(gpg_thread, 10000) == WAIT_TIMEOUT) + { + TerminateThread(gpg_thread, 0); + MessageBox(0, _T("GPG execution timed out, aborted"), _T(""), MB_OK); + } + if(result == pxNotFound) + { + MessageBox(0, _T("Set path to gpg.exe first!"), _T("Warning"), MB_OK); + break; + } + string::size_type s = 0; + while((s = out.find("\r", s)) != string::npos) + { + out.erase(s, 1); } DBWriteContactSettingString(hContact, szGPGModuleName, "GPGPubKey", out.c_str()); } @@ -963,10 +967,10 @@ static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LP MessageBox(0, tmp, _T(""), MB_OK); mir_free(tmp); DeleteFile(tmp2); - } - key_buf.clear(); - if(IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ENCRYPTION)) - { + } + key_buf.clear(); + if(IsDlgButtonChecked(hwndDlg, IDC_ENABLE_ENCRYPTION)) + { void setSrmmIcon(HANDLE); void setClistIcon(HANDLE); if(hContact) -- cgit v1.2.3