summaryrefslogtreecommitdiff
path: root/utilities.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 /utilities.cpp
parent461183308684de712dc674382a86f87707a19a2a (diff)
bugfixes
Diffstat (limited to 'utilities.cpp')
-rw-r--r--utilities.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/utilities.cpp b/utilities.cpp
index 8320d93..322541a 100644
--- a/utilities.cpp
+++ b/utilities.cpp
@@ -476,14 +476,17 @@ static JABBER_HANDLER_FUNC SendHandler(IJabberInterface *ji, HXML node, void *pU
}
DeleteFile(path_out.c_str());
path_out += _T(".asc");
- f.open(path_out.c_str(), std::ios::in);
+ f.open(path_out.c_str(), std::ios::in | std::ios::ate);
wstring data;
- while(!f.eof() && f.is_open())
+ if(f.is_open())
{
- TCHAR tmp[128];
- f.getline(tmp, 128);
+ 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';
data.append(tmp);
- data.append(_T("\n"));
+ delete [] tmp;
}
DeleteFile(path_out.c_str());
if(data.find(_T("-----BEGIN PGP MESSAGE-----")) != wstring::npos && data.find(_T("-----END PGP MESSAGE-----")) != wstring::npos)