diff options
Diffstat (limited to 'main.cpp')
-rw-r--r-- | main.cpp | 54 |
1 files changed, 36 insertions, 18 deletions
@@ -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); |