zarafa/dev-cpp/libvmime/files/0.9.2_pre603/vmime-mixed-qp-in-parameter...

29 lines
882 B
Diff

Index: svn/src/parameter.cpp
===================================================================
--- svn/src/parameter.cpp (revision 597)
+++ svn/src/parameter.cpp (working copy)
@@ -239,8 +239,21 @@
{
value << t.getWholeBuffer();
- if (!foundCharsetChunk)
- ch = t.getWordAt(0)->getCharset();
+ if (!foundCharsetChunk) {
+ // this is still wrong. each word can have it's
+ // own charset, and can be mixed (eg. iso-8859-1
+ // and iso-2022-jp), but very unlikely.
+ // real fix is to have parameters store a
+ // vmime::text in stead of a vmime::word in
+ // m_value. but that changes the interface
+ for (size_t i = 0; i < t.getWordCount(); i++) {
+ if (t.getWordAt(i)->getCharset() != ch && ch == charsets::US_ASCII) {
+ ch = t.getWordAt(i)->getCharset();
+ break;
+ }
+ }
+
+ }
}
}
}