summaryrefslogtreecommitdiff
path: root/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'main.cpp')
-rw-r--r--main.cpp54
1 files changed, 36 insertions, 18 deletions
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);