From 0a3c70d8388264a9d4c21c9063c4a493b88b882c Mon Sep 17 00:00:00 2001 From: Gluzskiy Alexandr Date: Sat, 4 Sep 2010 00:50:35 +0300 Subject: bugfixes, ability to set default password --- main.cpp | 54 ++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 36 insertions(+), 18 deletions(-) (limited to 'main.cpp') diff --git a/main.cpp b/main.cpp index 7b743e5..b11b969 100644 --- a/main.cpp +++ b/main.cpp @@ -159,12 +159,23 @@ static BOOL CALLBACK DlgProcFirstRun(HWND hwndDlg,UINT msg,WPARAM wParam,LPARAM ShowKeyGenDialog(); break; case ID_OK: - ListView_GetItemText(hwndList, itemnum, 0, fp, 16); { + ListView_GetItemText(hwndList, itemnum, 0, fp, 16); + TCHAR *name = new TCHAR [64]; + ListView_GetItemText(hwndList, itemnum, 2, name, 64); + { + if(_tcschr(name, _T('('))) + { + wstring str = name; + wstring::size_type p = str.find(_T("("))-1; + _tcscpy(name, str.substr(0, p).c_str()); + } + } string out; DWORD code; - wstring cmd = _T("--batch -a --export "); - cmd += fp; + wstring cmd = _T("--batch -a --export \""); + cmd += name; + cmd += _T("\""); gpg_execution_params params; pxResult result; params.cmd = &cmd; @@ -189,22 +200,23 @@ static BOOL CALLBACK DlgProcFirstRun(HWND hwndDlg,UINT msg,WPARAM wParam,LPARAM out.erase(s, 1); } DBWriteContactSettingString(NULL, szGPGModuleName, "GPGPubKey", out.c_str()); + DBWriteContactSettingTString(NULL, szGPGModuleName, "KeyMainName", name); + DBWriteContactSettingTString(NULL, szGPGModuleName, "KeyID", fp); + TCHAR passwd[64]; + GetDlgItemText(hwndDlg, IDC_KEY_PASSWORD, passwd, 64); + if(_tcslen(passwd) > 0) + DBWriteContactSettingTString(NULL, szGPGModuleName, "szKeyPassword", passwd); + else + DBDeleteContactSetting(NULL, szGPGModuleName, "szKeyPassword"); + DBWriteContactSettingByte(NULL, szGPGModuleName, "FirstRun", 0); + { + wstring keyinfo = _T("Current private key id: "); + keyinfo += (_tcslen(fp) > 0)?fp:_T("not set"); + extern HWND hwndCurKey_p; + SetWindowText(hwndCurKey_p, keyinfo.c_str()); + } + delete [] name; } - DBWriteContactSettingTString(NULL, szGPGModuleName, "KeyID", fp); - TCHAR passwd[64]; - GetDlgItemText(hwndDlg, IDC_KEY_PASSWORD, passwd, 64); - if(_tcslen(passwd) > 0) - DBWriteContactSettingTString(NULL, szGPGModuleName, "szKeyPassword", passwd); - else - DBDeleteContactSetting(NULL, szGPGModuleName, "szKeyPassword"); - DBWriteContactSettingByte(NULL, szGPGModuleName, "FirstRun", 0); - { - wstring keyinfo = _T("Current private key id: "); - keyinfo += (_tcslen(fp) > 0)?fp:_T("not set"); - extern HWND hwndCurKey_p; - SetWindowText(hwndCurKey_p, keyinfo.c_str()); - } - DestroyWindow(hwndDlg); break; case IDC_OTHER: @@ -611,6 +623,12 @@ static BOOL CALLBACK DlgProcKeyGenDialog(HWND hwndDlg, UINT msg, WPARAM wParam, delete [] tmp; break; } + else if (_tcschr(tmp, _T('(')) || _tcschr(tmp, _T(')'))) + { + MessageBox(0, _T("Name cannot contain '(' or ')'"), _T("Error"), MB_OK); + delete [] tmp; + break; + } delete [] tmp; tmp = new TCHAR [128]; GetDlgItemText(hwndDlg, IDC_KEY_EMAIL, tmp, 128); -- cgit v1.2.3