diff options
| author | Vincent Richard <[email protected]> | 2015-02-16 19:42:46 +0100 |
|---|---|---|
| committer | Vincent Richard <[email protected]> | 2015-02-16 19:42:46 +0100 |
| commit | 28233060d4061b9bda791ee327931886509ea52e (patch) | |
| tree | cf3c7b91ada0ba5aa8142e0fc153929df68d4641 /src | |
| parent | Issue #103: fix badly encoded words. (diff) | |
| download | vmime-28233060d4061b9bda791ee327931886509ea52e.tar.gz vmime-28233060d4061b9bda791ee327931886509ea52e.zip | |
Skip word on unexpected error when fixing broken words.
Diffstat (limited to 'src')
| -rw-r--r-- | src/vmime/text.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/vmime/text.cpp b/src/vmime/text.cpp index f506f660..930a9866 100644 --- a/src/vmime/text.cpp +++ b/src/vmime/text.cpp @@ -423,7 +423,17 @@ void text::fixBrokenWords(std::vector <shared_ptr <word> >& words) shared_ptr <word> w2 = words[i + 1]; // Check whether the word is valid - bool valid = w1->getCharset().isValidText(w1->getBuffer(), NULL); + bool valid = false; + + try + { + w1->getCharset().isValidText(w1->getBuffer(), NULL); + } + catch (vmime::exceptions::charset_conv_error& e) + { + // Unknown charset or unexpected conversion error: assume word is valid + valid = true; + } // If the current word is not valid, try to grab some bytes // from the next word, to see whether it becomes valid. |
