summaryrefslogtreecommitdiff
path: root/options.cpp
diff options
context:
space:
mode:
authorGluzskiy Alexandr <sss123next@list.ru>2010-09-07 20:03:07 +0300
committerGluzskiy Alexandr <sss123next@list.ru>2010-09-07 20:03:07 +0300
commitb25e8d1955f51b15d566b7e73199b044cfe0efa3 (patch)
tree370cf29bb5bc17df959b7c1f0c6c347a9f0db20b /options.cpp
parent461183308684de712dc674382a86f87707a19a2a (diff)
bugfixes
Diffstat (limited to 'options.cpp')
-rw-r--r--options.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/options.cpp b/options.cpp
index 00b4b7e..72a0b77 100644
--- a/options.cpp
+++ b/options.cpp
@@ -330,8 +330,6 @@ static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA
{
break;
}
- wfstream f(tmp, std::ios::out);
- delete [] tmp;
wstring str;
{
TCHAR *tmp = UniGetContactSettingUtf(user_data[item_num+1], szGPGModuleName, "GPGPubKey", _T(""));
@@ -343,6 +341,8 @@ static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA
{
str.erase(s, 1);
}
+ wfstream f(tmp, std::ios::out);
+ delete [] tmp;
f<<str.c_str();
f.close();
}
@@ -1032,19 +1032,21 @@ static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LP
{
break;
}
- wfstream f(tmp, std::ios::in);
+ wfstream f(tmp, std::ios::in | std::ios::ate);
delete [] tmp;
if(!f.is_open())
{
MessageBox(0, _T("Failed to open file"), _T("Error"), MB_OK);
break;
}
- while(!f.eof() && f.is_open())
+ if(f.is_open())
{
- tmp = new TCHAR [1024];
- f.getline(tmp, 1024, '\n');
+ std::ifstream::pos_type size = f.tellg();
+ TCHAR *tmp = new TCHAR [(std::ifstream::pos_type)size+(std::ifstream::pos_type)1];
+ f.seekg(0, std::ios::beg);
+ f.read(tmp, size);
+ tmp[size]= '\0';
key_buf.append(tmp);
- key_buf.append(_T("\n"));
delete [] tmp;
}
f.close();