Convert CRLF to LF after reading maildir message. Since the conversion happens in place no additional memory is used.

svn path=/trunk/kdepim/; revision=256242
wilder-work
Ingo Klcker 23 years ago
parent f54af5efd2
commit 226fb65c25
  1. 20
      kmfoldermaildir.cpp

@ -1,3 +1,4 @@
// -*- mode: C++; c-file-style: "gnu" -*-
// kmfoldermaildir.cpp
// Author: Kurt Granroth <granroth@kde.org>
@ -498,11 +499,18 @@ DwString KMFolderMaildir::getDwString(int idx)
if (fi.exists() && fi.isFile() && fi.isWritable() && fi.size() > 0)
{
FILE* stream = fopen(QFile::encodeName(abs_file), "r+");
if (stream) {
DwString str( stream, mi->msgSize() );
fclose( stream );
return str;
}
if (stream) {
size_t msgSize = mi->msgSize();
char* msgText = new char[ msgSize + 1 ];
fread(msgText, msgSize, 1, stream);
fclose( stream );
msgText[msgSize] = '\0';
size_t newMsgSize = crlf2lf( msgText, msgSize );
DwString str;
// the DwString takes possession of msgText, so we must not delete it
str.TakeBuffer( msgText, msgSize + 1, 0, newMsgSize );
return str;
}
}
kdDebug(5006) << "Could not open file r+" << abs_file << endl;
return DwString();
@ -526,6 +534,8 @@ QCString& KMFolderMaildir::getMsgString(int idx, QCString& mDest)
mDest.resize(mi->msgSize()+2);
mDest = kFileToString(abs_file, false, false);
size_t newMsgSize = crlf2lf( mDest.data(), mi->msgSize() );
mDest[newMsgSize] = '\0';
return mDest;
}

Loading…
Cancel
Save