diff options
author | Vincent Richard <[email protected]> | 2017-01-02 20:40:38 +0000 |
---|---|---|
committer | Vincent Richard <[email protected]> | 2017-01-02 20:40:38 +0000 |
commit | c53e914ea57dac19773aee30d3cf04d92d8cf1bf (patch) | |
tree | a7f77952b6dc9c36880df65e6fe2e1d47c28981c | |
parent | Fixed #151: don't ignore CMAKE_CXX_FLAGS command line argument. (diff) | |
download | vmime-c53e914ea57dac19773aee30d3cf04d92d8cf1bf.tar.gz vmime-c53e914ea57dac19773aee30d3cf04d92d8cf1bf.zip |
Always ignore newlines between words.
-rw-r--r-- | src/vmime/word.cpp | 5 | ||||
-rw-r--r-- | tests/parser/textTest.cpp | 4 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/vmime/word.cpp b/src/vmime/word.cpp index 27b741d4..d2d53b2b 100644 --- a/src/vmime/word.cpp +++ b/src/vmime/word.cpp @@ -82,11 +82,14 @@ shared_ptr <word> word::parseNext // - before the first word // - between two encoded words // - after the last word + // Always ignore newlines string whiteSpaces; while (pos < end && parserHelpers::isSpace(buffer[pos])) { - whiteSpaces += buffer[pos]; + if (buffer[pos] != '\r' && buffer[pos] != '\n') // do not include newlines + whiteSpaces += buffer[pos]; + ++pos; } diff --git a/tests/parser/textTest.cpp b/tests/parser/textTest.cpp index 530c83b6..60a9508e 100644 --- a/tests/parser/textTest.cpp +++ b/tests/parser/textTest.cpp @@ -269,6 +269,10 @@ VMIME_TEST_SUITE_BEGIN(textTest) // Whitespaces and multiline VASSERT_EQ("16", "a b c d e", DISPLAY_FORM("=?ISO-8859-1?Q?a_b_?=c\n\t=?ISO-8859-1?Q?d_?=e")); + // Ignored newlines + VASSERT_EQ("17", "ab", DISPLAY_FORM("=?ISO-8859-1?Q?a?=\r\nb")); + VASSERT_EQ("18", "a b", DISPLAY_FORM("=?ISO-8859-1?Q?a?= \r\nb")); + #undef DISPLAY_FORM } |