diff options
author | Robert Pösel <robyer@seznam.cz> | 2017-02-06 00:06:34 +0100 |
---|---|---|
committer | Robert Pösel <robyer@seznam.cz> | 2017-02-06 00:09:07 +0100 |
commit | c87d46c2af765e61b64dfb0859760b46cb432a59 (patch) | |
tree | d12fd6f7a35565273eda38150f8d79a7ea5ccce4 /plugins/Msg_Export/src/options.cpp | |
parent | 98518865f72ccb25e3f5a061508aff98ffb59493 (diff) |
Msg_Export: Fix exporting unicode messages, make it even faster (addresses #609)
Previously code worked with opening file and loading BOM at writing each event. When we stopped closing/opening file at each event it couldn't read BOM anymore, so it wrote messages in wrong codepage.
This is not fixed by parameter defining we are just appending the file, so it doesn't need to determing BOM or even check file size. Thanks to this exporting is now about 70% faster than the initial optimization commit (in sum 13.5x faster than before).
Diffstat (limited to 'plugins/Msg_Export/src/options.cpp')
-rwxr-xr-x | plugins/Msg_Export/src/options.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/plugins/Msg_Export/src/options.cpp b/plugins/Msg_Export/src/options.cpp index 7ae57f3afe..6dff0ee80d 100755 --- a/plugins/Msg_Export/src/options.cpp +++ b/plugins/Msg_Export/src/options.cpp @@ -249,12 +249,18 @@ int nExportCompleatList(HWND hParent, bool bOnlySelected) continue;
}
+ // At first write we need to have this false (to write file header, etc.), for each next write to same file use true
+ bool bAppendOnly = false;
+
list< CLDBEvent >::const_iterator iterator;
for (iterator = FileIterator->second.begin(); iterator != FileIterator->second.end(); ++iterator) {
MEVENT hDbEvent = (*iterator).hDbEvent;
MCONTACT hContact = (*iterator).hUser;
- if (!bExportEvent(hContact, hDbEvent, hFile, sFilePath))
+ if (!bExportEvent(hContact, hDbEvent, hFile, sFilePath, bAppendOnly))
break; // serious error, we should close the file and don't continue with it
+
+ // Set this flag, because we're appending to same file now
+ bAppendOnly = true;
}
// Close the file
|