From 1a7f3ec005307f0d34eaa12202642055b0baaca5 Mon Sep 17 00:00:00 2001 From: mguessan Date: Fri, 9 Oct 2009 23:08:04 +0000 Subject: [PATCH] IMAP: improve complex content-type handling in BODYSTRUCTURE git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@775 3d1905a2-6b24-0410-a738-b14d5a86fcbd --- src/java/davmail/imap/ImapConnection.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/java/davmail/imap/ImapConnection.java b/src/java/davmail/imap/ImapConnection.java index 45ed4793..b2b69f78 100644 --- a/src/java/davmail/imap/ImapConnection.java +++ b/src/java/davmail/imap/ImapConnection.java @@ -674,12 +674,18 @@ public class ImapConnection extends AbstractConnection { int charsetindex = contentType.indexOf("charset="); if (charsetindex >= 0) { buffer.append(" (\"CHARSET\" "); - int charsetEndIndex = Math.max(contentType.indexOf(' '), contentType.length()); + int charsetSemiColonIndex = contentType.indexOf(';', charsetindex); + int charsetEndIndex; + if (charsetSemiColonIndex > 0) { + charsetEndIndex = charsetSemiColonIndex; + } else { + charsetEndIndex = contentType.length(); + } String charSet = contentType.substring(charsetindex + "charset=".length(), charsetEndIndex); if (!charSet.startsWith("\"")) { buffer.append('"'); } - buffer.append(charSet.toUpperCase()); + buffer.append(charSet.trim().toUpperCase()); if (!charSet.endsWith("\"")) { buffer.append('"'); }