[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdepim
From: David Faure <faure () kde ! org>
Date: 2007-04-06 16:19:42
Message-ID: 1175876382.417480.7317.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 651123 by dfaure:
Revert commit r603692 in mimelib/entity.cpp, and add unit tests to show what it broke \
(Parse+Assemble on a mail with a part without headers loses a newline, so the \
signature is broken when copying a mail - aegypten issue734). I know now that this \
does NOT reintroduce issue661, "forwarding emails can produce bad signature", which \
is unrelated.
Also remove getMsgString from all folder classes, since it's now unused; getDwString \
is used instead. Also:
-virtual void take(QList<KMMessage*>);
+virtual void take(const QList<KMMessage*>&);
M +1 -1 kmail/folderstorage.cpp
M +1 -4 kmail/folderstorage.h
M +2 -7 kmail/kmfolder.cpp
M +1 -4 kmail/kmfolder.h
M +1 -1 kmail/kmfolderimap.cpp
M +1 -1 kmail/kmfolderimap.h
M +0 -23 kmail/kmfoldermaildir.cpp
M +1 -2 kmail/kmfoldermaildir.h
M +0 -23 kmail/kmfoldermbox.cpp
M +1 -2 kmail/kmfoldermbox.h
M +0 -7 kmail/kmfoldersearch.cpp
M +0 -1 kmail/kmfoldersearch.h
M +6 -8 kmail/kmheaders.cpp
M +1 -0 kmail/kmstartup.cpp
M +11 -6 kmail/tests/CMakeLists.txt
A kmail/tests/mimelibtests.cpp \
branches/kdepim/enterprise/kdepim/kmail/tests/mimelibtests.cpp#650094 [License: LGPL \
(v2+)] A kmail/tests/mimelibtests.h \
branches/kdepim/enterprise/kdepim/kmail/tests/mimelibtests.h#650094 [License: LGPL \
(v2+)] A kmail/tests/multipartmixed.mbox \
branches/kdepim/enterprise/kdepim/kmail/tests/multipartmixed.mbox#650094 A \
kmail/tests/signedmail.mbox \
branches/kdepim/enterprise/kdepim/kmail/tests/signedmail.mbox#650094 M +11 -1 \
kmail/tests/utiltests.cpp M +1 -0 kmail/tests/utiltests.h
M +1 -2 mimelib/entity.cpp
--- trunk/KDE/kdepim/kmail/folderstorage.cpp #651122:651123
@@ -451,7 +451,7 @@
return msg;
}
-void FolderStorage::take(QList<KMMessage*> msgList)
+void FolderStorage::take(const QList<KMMessage*>& msgList)
{
for( QList<KMMessage*>::const_iterator it = msgList.begin();
it != msgList.end(); ++it )
--- trunk/KDE/kdepim/kmail/folderstorage.h #651122:651123
@@ -148,9 +148,6 @@
*/
virtual KMMessage* readTemporaryMsg(int idx);
- /** Read a message and return a referece to a string */
- virtual QByteArray& getMsgString(int idx, QByteArray& mDest) = 0;
-
/** Read a message and returns a DwString */
virtual DwString getDwString(int idx) = 0;
@@ -186,7 +183,7 @@
/** Detach message from this folder. Usable to call addMsg() afterwards.
Loads the message if it is not loaded up to now. */
virtual KMMessage* take(int idx);
- virtual void take(QList<KMMessage*> msgList);
+ virtual void take(const QList<KMMessage*>& msgList);
/** Add the given message to the folder. Usually the message
is added at the end of the folder. Returns zero on success and
--- trunk/KDE/kdepim/kmail/kmfolder.cpp #651122:651123
@@ -323,11 +323,6 @@
return mStorage->isMessage( idx );
}
-QByteArray& KMFolder::getMsgString( int idx, QByteArray& mDest )
-{
- return mStorage->getMsgString( idx, mDest );
-}
-
DwString KMFolder::getDwString( int idx )
{
return mStorage->getDwString( idx );
@@ -377,7 +372,7 @@
return mStorage->take( idx );
}
-void KMFolder::take( QList<KMMessage*> msgList )
+void KMFolder::take( const QList<KMMessage*>& msgList )
{
mStorage->take( msgList );
}
@@ -407,7 +402,7 @@
mStorage->removeMsg( i, imapQuiet );
}
-void KMFolder::removeMsg( QList<KMMessage*> msgList, bool imapQuiet )
+void KMFolder::removeMsg( QList<KMMessage*> msgList, bool imapQuiet ) // TODO const \
ref {
mStorage->removeMsg( msgList, imapQuiet );
}
--- trunk/KDE/kdepim/kmail/kmfolder.h #651122:651123
@@ -188,9 +188,6 @@
/** Checks if the message is already "gotten" with getMsg */
bool isMessage(int idx);
- /** Read a message and return a referece to a string */
- QByteArray& getMsgString(int idx, QByteArray& mDest);
-
/** Read a message and returns a DwString */
DwString getDwString(int idx);
@@ -226,7 +223,7 @@
/** Detach message from this folder. Usable to call addMsg() afterwards.
Loads the message if it is not loaded up to now. */
KMMessage* take(int idx);
- void take(QList<KMMessage*> msgList);
+ void take(const QList<KMMessage*>& msgList);
/** Add the given message to the folder. Usually the message
is added at the end of the folder. Returns zero on success and
--- trunk/KDE/kdepim/kmail/kmfolderimap.cpp #651122:651123
@@ -618,7 +618,7 @@
return KMFolderMbox::take(idx);
}
-void KMFolderImap::take(QList<KMMessage*> msgList)
+void KMFolderImap::take(const QList<KMMessage*>& msgList)
{
deleteMessage(msgList);
--- trunk/KDE/kdepim/kmail/kmfolderimap.h #651122:651123
@@ -366,7 +366,7 @@
/** Detach message from this folder. Usable to call addMsg() afterwards.
Loads the message if it is not loaded up to now. */
virtual KMMessage* take(int idx);
-virtual void take(QList<KMMessage*>);
+virtual void take(const QList<KMMessage*>&);
/**
* Add the data a KIO::Job retrieves to the buffer
--- trunk/KDE/kdepim/kmail/kmfoldermaildir.cpp #651122:651123
@@ -597,29 +597,6 @@
}
-QByteArray& KMFolderMaildir::getMsgString(int idx, QByteArray& mDest)
-{
- KMMsgInfo* mi = (KMMsgInfo*)mMsgList[idx];
-
- assert(mi!=0);
-
- QString abs_file(location() + "/cur/");
- abs_file += mi->fileName();
-
- if (QFile::exists(abs_file) == false)
- {
- kDebug(5006) << "The " << abs_file << " file doesn't exist!" << endl;
- return mDest;
- }
-
- QFileInfo fi( abs_file );
- mDest.resize(fi.size()+2);
- mDest = KPIM::kFileToByteArray( abs_file, false, false );
- const size_t newMsgSize = KMail::Util::crlf2lf( mDest.data(), fi.size() );
- mDest.truncate( newMsgSize );
- return mDest;
-}
-
void KMFolderMaildir::readFileHeaderIntern( const QString& dir,
const QString& file,
MessageStatus& status )
--- trunk/KDE/kdepim/kmail/kmfoldermaildir.h #651122:651123
@@ -30,8 +30,7 @@
/** Returns the type of this folder */
virtual KMFolderType folderType() const { return KMFolderTypeMaildir; }
- /** Read a message and return a referece to a string */
- virtual QByteArray& getMsgString(int idx, QByteArray& mDest);
+ /** Read a message and return it as a string */
virtual DwString getDwString(int idx);
/** Detach message from this folder. Usable to call addMsg() afterwards.
--- trunk/KDE/kdepim/kmail/kmfoldermbox.cpp #651122:651123
@@ -929,29 +929,6 @@
#undef STRDIM
//-----------------------------------------------------------------------------
-QByteArray& KMFolderMbox::getMsgString(int idx, QByteArray &mDest)
-{
- size_t msgSize;
- KMMsgInfo* mi = (KMMsgInfo*)mMsgList[idx];
-
- assert(mi!=0);
- assert(mStream != 0);
-
- msgSize = mi->msgSize();
- mDest.resize(msgSize+2);
-
- fseek(mStream, mi->folderOffset(), SEEK_SET);
- fread(mDest.data(), msgSize, 1, mStream);
- mDest[(uint)msgSize] = '\0';
-
- size_t newMsgSize = unescapeFrom( mDest.data(), msgSize );
- newMsgSize = KMail::Util::crlf2lf( mDest.data(), newMsgSize );
-
- return mDest;
-}
-
-
-//-----------------------------------------------------------------------------
DwString KMFolderMbox::getDwString(int idx)
{
KMMsgInfo* mi = (KMMsgInfo*)mMsgList[idx];
--- trunk/KDE/kdepim/kmail/kmfoldermbox.h #651122:651123
@@ -62,8 +62,7 @@
/** Returns the type of this folder */
virtual KMFolderType folderType() const { return KMFolderTypeMbox; }
- /** Read a message and return a referece to a string */
- virtual QByteArray& getMsgString(int idx, QByteArray& mDest);
+ /** Read a message and return it as a string */
DwString getDwString(int idx);
/** Add the given message to the folder. Usually the message
--- trunk/KDE/kdepim/kmail/kmfoldersearch.cpp #651122:651123
@@ -499,13 +499,6 @@
}
}
-QByteArray& KMFolderSearch::getMsgString(int idx, QByteArray& mDest)
-{
- KMFolder *folder = getMsgBase(idx)->parent();
- assert(folder);
- return folder->getMsgString(folder->find(getMsgBase(idx)), mDest);
-}
-
int KMFolderSearch::addMsg(KMMessage*, int* index_return)
{
//Not supported search folder can't own messages
--- trunk/KDE/kdepim/kmail/kmfoldersearch.h #651122:651123
@@ -170,7 +170,6 @@
public:
//See base class for documentation
- virtual QByteArray& getMsgString( int idx, QByteArray &mDest );
virtual int addMsg( KMMessage *msg, int *index_return = 0 );
virtual int open( const char *owner );
virtual int canAccess();
--- trunk/KDE/kdepim/kmail/kmheaders.cpp #651122:651123
@@ -2086,20 +2086,18 @@
}
int idx = item->msgId();
- if (mReaderWindowActive) {
- KMMessage *msg = mFolder->getMsg(idx);
- if (!msg ) {
- emit selected( 0 );
- mPrevCurrent = 0;
- return;
- }
+ KMMessage *msg = mFolder->getMsg(idx);
+ if (mReaderWindowActive && !msg) {
+ emit selected( 0 );
+ mPrevCurrent = 0;
+ return;
}
BroadcastStatus::instance()->setStatusMsg("");
if (markitread && idx >= 0) setMsgRead(idx);
mItems[idx]->irefresh();
mItems[idx]->repaint();
- emit selected( mFolder->getMsg(idx) );
+ emit selected( msg );
setFolderInfoStatus();
}
--- trunk/KDE/kdepim/kmail/kmstartup.cpp #651122:651123
@@ -138,6 +138,7 @@
QString lockLocation = KStandardDirs::locateLocal("data", "kmail/lock");
KConfig config(lockLocation, KConfig::OnlyLocal);
int oldPid = config.readEntry("pid", -1 );
+ kDebug() << "oldPid=" << oldPid << endl;
const QString oldHostName = config.readEntry("hostname");
const QString oldAppName = config.readEntry( "appName", appName );
const QString oldProgramName = config.readEntry( "programName", programName );
--- trunk/KDE/kdepim/kmail/tests/CMakeLists.txt #651122:651123
@@ -3,23 +3,28 @@
# Tests don't need to go into toplevel/bin, they are fine in the current dir.
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR} )
+# This can be used for finding data files in the source dir, without installing them
+add_definitions( -DKDESRCDIR=\\"${CMAKE_CURRENT_SOURCE_DIR}\\" )
+
include_directories( ${CMAKE_SOURCE_DIR}/mimelib ${CMAKE_SOURCE_DIR}/kmail )
-
########### utiltests ###############
set(utiltests_SRCS utiltests.cpp ../util.cpp )
-
kde4_automoc(${utiltests_SRCS})
-
-kde4_add_executable(utiltests NOGUI RUN_UNINSTALLED ${utiltests_SRCS})
-
+kde4_add_test(utiltests ${utiltests_SRCS})
target_link_libraries(utiltests mimelib ${QT_QTTEST_LIBRARY} ${QT_QTCORE_LIBRARY})
-
add_test(kmail-utiltests ${EXECUTABLE_OUTPUT_PATH}/utiltests)
+########### mimelibtests ###############
+set(mimelibtests_SRCS mimelibtests.cpp ../util.cpp )
+kde4_automoc(${mimelibtests_SRCS})
+kde4_add_test(mimelibtests ${mimelibtests_SRCS})
+target_link_libraries(mimelibtests mimelib ${QT_QTTEST_LIBRARY} \
${QT_QTCORE_LIBRARY}) +add_test(kmail-mimelibtests \
${EXECUTABLE_OUTPUT_PATH}/mimelibtests)
+
###### TODO port storagelayer tests to QTestLib
#kunittest_storagelayermodule_la_SOURCES = storagelayermodule.cpp \
messagedicttests.cpp ../kmdict.cpp
--- trunk/KDE/kdepim/kmail/tests/utiltests.cpp #651122:651123
@@ -3,13 +3,13 @@
* This file is subject to the GPL version 2.
*/
-#include <kdebug.h>
#include "qtest_kde.h"
#include "utiltests.h"
#include "utiltests.moc"
QTEST_KDEMAIN_CORE( UtilTester )
+#include <kdebug.h>
#include "util.h"
#include <mimelib/string.h>
@@ -31,6 +31,16 @@
QCOMPARE( KMail::Util::lf2crlf( QByteArray("") ), QByteArray("") );
}
+void UtilTester::test_crlf2lf()
+{
+ QByteArray src = "\r\n\r\nfoo\r\n\r\nbar\rblah\r\n\r\r\n\r\n\r";
+ int len = src.length();
+ QCOMPARE( (char)src[len], '\0' );
+ int newLen = KMail::Util::crlf2lf( src.data(), len );
+ QVERIFY( newLen <= len );
+ QCOMPARE( makePrintable( src ), makePrintable("\n\nfoo\n\nbar\rblah\n\r\n\n\r") );
+}
+
void UtilTester::test_escapeFrom()
{
// TODO
--- trunk/KDE/kdepim/kmail/tests/utiltests.h #651122:651123
@@ -15,6 +15,7 @@
private slots:
void test_lf2crlf();
+ void test_crlf2lf();
void test_escapeFrom();
void test_DwStringConversions();
private:
--- trunk/KDE/kdepim/mimelib/entity.cpp #651122:651123
@@ -222,8 +222,7 @@
// DwEntityParser skips the line separating the headers from the
// body. So it's neither part of DwHeaders, nor of DwBody
// -> we need to readd it here:
- if ( mString != "" )
- mString += DW_EOL;
+ mString += DW_EOL;
mString += aBody.AsString();
mIsModified = 0;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic