[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdepim/kmail
From:       Allen Winter <winter () kde ! org>
Date:       2006-03-05 22:11:36
Message-ID: 1141596696.185404.9003.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 516084 by winterz:

forward port 492609:

Mimelib creates empty header fields when you ask for them and they do not
exist. So retrieve the Content-Type field only when it is present.
Prevents display problems with Thunderbird as reported on kdepim-users.


 M  +11 -8     kmmessage.cpp  


--- trunk/KDE/kdepim/kmail/kmmessage.cpp #516083:516084
@@ -2799,13 +2799,14 @@
 
     // pending(khz): Find out WHY this look does not travel down *into* an
     //               embedded "Message/RfF822" message containing a "Multipart/Mixed"
-    if (curpart && curpart->hasHeaders() ) {
+    if ( curpart && curpart->hasHeaders() && curpart->Headers().HasContentType() ) {
       kDebug(5006) << curpart->Headers().ContentType().TypeStr().c_str()
 		<< "  " << curpart->Headers().ContentType().SubtypeStr().c_str() << endl;
     }
 
     if (curpart &&
 	curpart->hasHeaders() &&
+        curpart->Headers().HasContentType() &&
 	curpart->Headers().ContentType().Type() == type &&
 	curpart->Headers().ContentType().Subtype() == subtype) {
 	part = curpart;
@@ -3823,13 +3824,15 @@
 //-----------------------------------------------------------------------------
 Q3CString KMMessage::charset() const
 {
-  DwMediaType &mType=mMsg->Headers().ContentType();
-  mType.Parse();
-  DwParameter *param=mType.FirstParameter();
-  while(param){
-    if (!kasciistricmp(param->Attribute().c_str(), "charset"))
-      return param->Value().c_str();
-    else param=param->Next();
+  if ( mMsg->Headers().HasContentType() ) {  
+    DwMediaType &mType=mMsg->Headers().ContentType();
+    mType.Parse();
+    DwParameter *param=mType.FirstParameter();
+    while(param){
+      if (!kasciistricmp(param->Attribute().c_str(), "charset"))
+        return param->Value().c_str();
+      else param=param->Next();
+    }
   }
   return ""; // us-ascii, but we don't have to specify it
 }
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic