summaryrefslogtreecommitdiff
path: root/options.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'options.cpp')
-rw-r--r--options.cpp186
1 files changed, 95 insertions, 91 deletions
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*)&params);
- 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*)&params);
+ 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*)&params);
- 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*)&params);
+ 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*)&params);
- 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*)&params);
+ 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)