summaryrefslogtreecommitdiff
path: root/plugins/Msg_Export/src/options.cpp
diff options
context:
space:
mode:
authorRobert Pösel <robyer@seznam.cz>2017-02-06 00:06:34 +0100
committerRobert Pösel <robyer@seznam.cz>2017-02-06 00:09:07 +0100
commitc87d46c2af765e61b64dfb0859760b46cb432a59 (patch)
treed12fd6f7a35565273eda38150f8d79a7ea5ccce4 /plugins/Msg_Export/src/options.cpp
parent98518865f72ccb25e3f5a061508aff98ffb59493 (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-xplugins/Msg_Export/src/options.cpp8
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