aboutsummaryrefslogtreecommitdiffstats
path: root/src/messaging/imap/IMAPMessage.cpp
diff options
context:
space:
mode:
authorVincent Richard <[email protected]>2005-05-27 19:43:20 +0000
committerVincent Richard <[email protected]>2005-05-27 19:43:20 +0000
commit9479afa20688778dbd4d04834dcca4ee18793cd6 (patch)
treec62fae8b8e20304d958cfea798bb3cefa19f3eb2 /src/messaging/imap/IMAPMessage.cpp
parentFree memory for args. (diff)
downloadvmime-9479afa20688778dbd4d04834dcca4ee18793cd6.tar.gz
vmime-9479afa20688778dbd4d04834dcca4ee18793cd6.zip
Added 'peek' parameter to extract() and extractPart().
Diffstat (limited to 'src/messaging/imap/IMAPMessage.cpp')
-rw-r--r--src/messaging/imap/IMAPMessage.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/messaging/imap/IMAPMessage.cpp b/src/messaging/imap/IMAPMessage.cpp
index a2220c68..03af67c6 100644
--- a/src/messaging/imap/IMAPMessage.cpp
+++ b/src/messaging/imap/IMAPMessage.cpp
@@ -367,23 +367,23 @@ const header& IMAPMessage::getHeader() const
void IMAPMessage::extract(utility::outputStream& os, utility::progressionListener* progress,
- const int start, const int length) const
+ const int start, const int length, const bool peek) const
{
if (!m_folder)
throw exceptions::folder_not_found();
- extract(NULL, os, progress, start, length, false);
+ extract(NULL, os, progress, start, length, false, peek);
}
void IMAPMessage::extractPart
(const part& p, utility::outputStream& os, utility::progressionListener* progress,
- const int start, const int length) const
+ const int start, const int length, const bool peek) const
{
if (!m_folder)
throw exceptions::folder_not_found();
- extract(&p, os, progress, start, length, false);
+ extract(&p, os, progress, start, length, false, peek);
}
@@ -395,7 +395,7 @@ void IMAPMessage::fetchPartHeader(part& p)
std::ostringstream oss;
utility::outputStreamAdapter ossAdapter(oss);
- extract(&p, ossAdapter, NULL, 0, -1, true);
+ extract(&p, ossAdapter, NULL, 0, -1, true, true);
static_cast <IMAPpart&>(p).getOrCreateHeader().parse(oss.str());
}
@@ -403,7 +403,7 @@ void IMAPMessage::fetchPartHeader(part& p)
void IMAPMessage::extract(const part* p, utility::outputStream& os,
utility::progressionListener* progress, const int start,
- const int length, const bool headerOnly) const
+ const int length, const bool headerOnly, const bool peek) const
{
IMAPMessage_literalHandler literalHandler(os, progress);
@@ -436,7 +436,9 @@ void IMAPMessage::extract(const part* p, utility::outputStream& os,
// Build the request text
std::ostringstream command;
- command << "FETCH " << m_num << " BODY[";
+ command << "FETCH " << m_num << " BODY";
+ if (peek) command << ".PEEK";
+ command << "[";
command << section.str();
if (headerOnly) command << ".MIME"; // "MIME" not "HEADER" for parts
command << "]";