Enable re-generation of broken Content-Id's that had no '@' sign in them (Zarafa).
This commit is contained in:
parent
689f99f7a6
commit
f626c4fbe8
@ -118,7 +118,7 @@ void messageId::parse(const string& buffer, const string::size_type position,
|
||||
// Extract left part
|
||||
const string::size_type leftStart = position + (p - pstart);
|
||||
|
||||
while (p < pend && *p != '@') ++p;
|
||||
while (p < pend && *p != '@' && *p != '>') ++p;
|
||||
|
||||
m_left = string(buffer.begin() + leftStart,
|
||||
buffer.begin() + position + (p - pstart));
|
||||
@ -178,6 +178,9 @@ ref <messageId> messageId::parseNext(const string& buffer, const string::size_ty
|
||||
|
||||
const string messageId::getId() const
|
||||
{
|
||||
if (m_right.empty())
|
||||
return m_left;
|
||||
|
||||
return (m_left + '@' + m_right);
|
||||
}
|
||||
|
||||
@ -193,7 +196,9 @@ void messageId::generate(utility::outputStream& os, const string::size_type maxL
|
||||
pos = NEW_LINE_SEQUENCE_LENGTH;
|
||||
}
|
||||
|
||||
os << '<' << m_left << '@' << m_right << '>';
|
||||
os << '<' << m_left;
|
||||
if (m_right != "") os << '@' << m_right;
|
||||
os << '>';
|
||||
|
||||
if (newLinePos)
|
||||
*newLinePos = pos + m_left.length() + m_right.length() + 3;
|
||||
|
@ -59,12 +59,12 @@ VMIME_TEST_SUITE_BEGIN
|
||||
{
|
||||
vmime::messageId m1;
|
||||
|
||||
VASSERT_EQ("1", "<@>", m1.generate());
|
||||
VASSERT_EQ("1", "<>", m1.generate());
|
||||
|
||||
vmime::messageId m2;
|
||||
m2.setLeft("a");
|
||||
|
||||
VASSERT_EQ("2", "<a@>", m2.generate());
|
||||
VASSERT_EQ("2", "<a>", m2.generate());
|
||||
|
||||
vmime::messageId m3;
|
||||
m3.setRight("b");
|
||||
|
Loading…
Reference in New Issue
Block a user