diff options
author | Gluzskiy Alexandr <sss123next@list.ru> | 2010-11-30 18:25:48 +0200 |
---|---|---|
committer | Gluzskiy Alexandr <sss123next@list.ru> | 2010-11-30 18:25:48 +0200 |
commit | 1f5acb24f8483d5d6b0e55299579ad5ee975c9b1 (patch) | |
tree | c184138aadf482376ae7cd064924f7533b930677 | |
parent | 6cf18be1f2a73e501cf855de4db7dd57a52581d5 (diff) |
fixed crash on metacontacts key import
-rw-r--r-- | main.cpp | 6 | ||||
-rw-r--r-- | utilities.cpp | 4 |
2 files changed, 7 insertions, 3 deletions
@@ -1726,7 +1726,6 @@ void ImportKey() if(metaIsProtoMetaContacts(hContact)) if(MessageBox(0, _T("Do you want load key for all subcontacts ?"), _T("Metacontact detected"), MB_YESNO) == IDYES) for_all_sub = true; - if(metaIsProtoMetaContacts(hContact)) { HANDLE hcnt = NULL; @@ -1760,7 +1759,10 @@ void ImportKey() _tcscat(tmp2, _T("temporary_exported.asc")); DeleteFile(tmp2); wfstream f(tmp2, std::ios::out); - ptmp = UniGetContactSettingUtf(hContact, szGPGModuleName, "GPGPubKey", _T("")); + if(metaIsProtoMetaContacts(hContact)) + ptmp = UniGetContactSettingUtf(metaGetCurrent(hContact), szGPGModuleName, "GPGPubKey", _T("")); + else + ptmp = UniGetContactSettingUtf(hContact, szGPGModuleName, "GPGPubKey", _T("")); wstring new_key = ptmp; mir_free(ptmp); f<<new_key.c_str(); diff --git a/utilities.cpp b/utilities.cpp index 4f594cb..66389f0 100644 --- a/utilities.cpp +++ b/utilities.cpp @@ -934,7 +934,9 @@ int returnNoError(HANDLE hContact) { string toUTF8(wstring str)
{
string ustr;
- utf8::utf16to8(str.begin(), str.end(), back_inserter(ustr));
+ wstring tmpstr;
+ utf8::replace_invalid(str.begin(), str.end(), back_inserter(tmpstr));
+ utf8::utf16to8(tmpstr.begin(), tmpstr.end(), back_inserter(ustr));
return ustr;
}
|