diff options
Diffstat (limited to 'libraries/libvmime-zarafa/zarafa-patches/vmime-oe-compatibility.diff')
-rw-r--r-- | libraries/libvmime-zarafa/zarafa-patches/vmime-oe-compatibility.diff | 163 |
1 files changed, 0 insertions, 163 deletions
diff --git a/libraries/libvmime-zarafa/zarafa-patches/vmime-oe-compatibility.diff b/libraries/libvmime-zarafa/zarafa-patches/vmime-oe-compatibility.diff deleted file mode 100644 index acd717dbc2..0000000000 --- a/libraries/libvmime-zarafa/zarafa-patches/vmime-oe-compatibility.diff +++ /dev/null @@ -1,163 +0,0 @@ ---- libvmime-0.7.1/src/defaultParameter.cpp 2007-01-26 14:44:10.243562750 +0100 -+++ libvmime-0.7.1.patched/src/defaultParameter.cpp 2007-04-24 13:43:36.579203500 +0200 -@@ -186,18 +186,18 @@ - { - const string& name = getName(); - const string& value = m_value.getBuffer(); -+ string tmpbuf; -+ utility::outputStreamStringAdapter tmpos(tmpbuf); - - // For compatibility with implementations that do not understand RFC-2231, - // also generate a normal "7bit/us-ascii" parameter - string::size_type pos = curLinePos; - -- if (pos + name.length() + 10 + value.length() > maxLineLength) -- { -- os << NEW_LINE_SEQUENCE; -+ tmpos << NEW_LINE_SEQUENCE; - pos = NEW_LINE_SEQUENCE_LENGTH; -- } - - bool needQuoting = false; -+ bool needQuotedPrintable = false; - string::size_type valueLength = 0; - - // Use worst-case length name.length()+2 for 'name=' part of line -@@ -228,35 +228,50 @@ - needQuoting = true; - break; - } -+ if (!parserHelpers::isAscii(value[i])) -+ { -+ needQuotedPrintable = true; -+ needQuoting = true; -+ } - } - - const bool cutValue = (valueLength != value.length()); // has the value been cut? - - if (needQuoting) - { -- os << name << "=\""; -+ tmpos << name << "=\""; - pos += name.length() + 2; - } - else - { -- os << name << "="; -+ tmpos << name << "="; - pos += name.length() + 1; - } - - bool extended = false; -- -- for (string::size_type i = 0 ; (i < value.length()) && (pos < maxLineLength - 4) ; ++i) -+ if (needQuotedPrintable) -+ { -+ // send the name in quoted-printable, so outlook express et.al. will understand the real filename -+ size_t oldlen = tmpbuf.length(); -+ m_value.generate(tmpos); -+ pos += tmpbuf.length() - oldlen; -+ extended = true; // also send with RFC-2231 encoding -+ } -+ else -+ { -+ // do not chop off this value, but just add the complete name as one header line. -+ for (string::size_type i = 0 ; (i < value.length()) /*&& (pos < maxLineLength - 4) */ ; ++i) - { - const char_t c = value[i]; - - if (/* needQuoting && */ (c == '"' || c == '\\')) // 'needQuoting' is implicit - { -- os << '\\' << value[i]; // escape 'x' with '\x' -+ tmpos << '\\' << value[i]; // escape 'x' with '\x' - pos += 2; - } - else if (parserHelpers::isAscii(c)) - { -- os << value[i]; -+ tmpos << value[i]; - ++pos; - } - else -@@ -264,10 +279,11 @@ - extended = true; - } - } -+ } - - if (needQuoting) - { -- os << '"'; -+ tmpos << '"'; - ++pos; - } - -@@ -275,7 +291,7 @@ - // or is too long for a single line - if (extended || cutValue) - { -- os << ';'; -+ tmpos << ';'; - ++pos; - - /* RFC-2231 -@@ -301,11 +317,8 @@ - name.length() + 4 /* *0*= */ + 2 /* '' */ - + m_value.getCharset().getName().length(); - -- if (pos + firstSectionLength + 5 >= maxLineLength) -- { -- os << NEW_LINE_SEQUENCE; -+ tmpos << NEW_LINE_SEQUENCE; - pos = NEW_LINE_SEQUENCE_LENGTH; -- } - - // Split text into multiple sections that fit on one line - int sectionCount = 0; -@@ -384,33 +397,36 @@ - // Output sections - for (int sectionNumber = 0 ; sectionNumber < sectionCount ; ++sectionNumber) - { -- os << name; -+ tmpos << name; - - if (sectionCount != 1) // no section specifier when only a single one - { -- os << '*'; -- os << sectionNumber; -+ tmpos << '*'; -+ tmpos << sectionNumber; - } - -- os << "*="; -+ tmpos << "*="; - - if (sectionNumber == 0) - { -- os << m_value.getCharset().getName(); -- os << '\'' << /* No language */ '\''; -+ tmpos << m_value.getCharset().getName(); -+ tmpos << '\'' << /* No language */ '\''; - } - -- os << sectionText[sectionNumber]; -+ tmpos << sectionText[sectionNumber]; - - if (sectionNumber + 1 < sectionCount) - { -- os << ';'; -- os << NEW_LINE_SEQUENCE; -+ tmpos << ';'; -+ tmpos << NEW_LINE_SEQUENCE; - pos = NEW_LINE_SEQUENCE_LENGTH; - } - } - } - -+ // write the complete header -+ os << tmpbuf; -+ - if (newLinePos) - *newLinePos = pos; - } |