summaryrefslogtreecommitdiff
path: root/noncore/net/mailit/emailhandler.cpp
Side-by-side diff
Diffstat (limited to 'noncore/net/mailit/emailhandler.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/mailit/emailhandler.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/noncore/net/mailit/emailhandler.cpp b/noncore/net/mailit/emailhandler.cpp
index 59ccd90..39f693d 100644
--- a/noncore/net/mailit/emailhandler.cpp
+++ b/noncore/net/mailit/emailhandler.cpp
@@ -172,13 +172,15 @@ bool EmailHandler::parse(const QString &in, const QString &lineShift, Email *mai
pos = in.find(delimiter, 0, FALSE);
header = in.left(pos);
body = in.right(in.length() - pos - delimiter.length());
if ((body.at(body.length()-2) == '.') && (body.at(body.length()-3) == '\n'))
body.truncate(body.length()-2);
- TextParser p(header, lineShift);
+ // TextParser p(header, lineShift);
+ TextParser * lp = new TextParser(header, lineShift);
+#define p (*lp)
if ((pos = p.find("FROM",':', 0, TRUE)) != -1) {
pos++;
if (p.separatorAt(pos) == ' ') {
mail->from = p.getString(&pos, '<', false);
mail->from = mail->from.stripWhiteSpace();
@@ -267,12 +269,13 @@ bool EmailHandler::parse(const QString &in, const QString &lineShift, Email *mai
boundary = "--" + boundary; //create boundary field
}
if (boundary == "") { //fooled by Mime-Version
mail->body = body;
mail->bodyPlain = body;
+ delete lp;
return mail;
}
while (body.length() > 0) {
pos = body.find(boundary, 0, FALSE);
pos = body.find(delimiter, pos, FALSE);
@@ -335,12 +338,13 @@ bool EmailHandler::parse(const QString &in, const QString &lineShift, Email *mai
}
}
} else {
mail->bodyPlain = body;
mail->body = body;
}
+ delete lp;
return TRUE;
}
bool EmailHandler::getEnclosure(Enclosure *ePtr)
{
QFile f(ePtr->path + ePtr->name);