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

List:       kde-commits
Subject:    KDE_3_2_BRANCH: kdepim/kmail
From:       Ingo Klöcker <kloecker () kde ! org>
Date:       2004-06-12 13:46:49
Message-ID: 20040612134649.A5E93990D () office ! kde ! org
[Download RAW message or body]

CVS commit by kloecker: 

Backporting the fix for the creation of mbox message separators.


  M +1 -4      kmcommands.cpp   1.99.2.5
  M +1 -1      kmcomposewin.cpp   1.770.2.8
  M +2 -5      kmfoldermbox.cpp   1.92.2.4
  M +16 -0     kmmessage.cpp   1.451.2.3
  M +8 -0      kmmessage.h   1.157.4.1


--- kdepim/kmail/kmcommands.cpp  #1.99.2.4:1.99.2.5
@@ -689,8 +689,5 @@ void KMSaveMsgCommand::slotSaveDataReq()
 void KMSaveMsgCommand::slotMessageRetrievedForSaving(KMMessage *msg)
 {
-  QCString str( msg->fromEmail() );
-  if ( str.isEmpty() )
-    str = "unknown@unknown.invalid";
-  str = "From " + str + " " + msg->dateShortStr() + "\n";
+  QCString str( msg->mboxMessageSeparator() );
   str += KMFolderMbox::escapeFrom( msg->asString() );
   str += "\n";

--- kdepim/kmail/kmcomposewin.cpp  #1.770.2.7:1.770.2.8
@@ -612,5 +612,5 @@ void KMComposeWin::deadLetter(void)
   if (fd != -1)
   {
-    QCString startStr = "From " + mMsg->fromEmail() + " " + mMsg->dateShortStr() + "\n";
+    QCString startStr( mMsg->mboxMessageSeparator() );
     ::write(fd, startStr, startStr.length());
     ::write(fd, msgStr, msgStr.length());

--- kdepim/kmail/kmfoldermbox.cpp  #1.92.2.3:1.92.2.4
@@ -980,9 +980,6 @@ if( fileD1.open( IO_WriteOnly ) ) {
   }
 
-  QCString address( aMsg->fromEmail() );
-  if ( address.isEmpty() )
-    address = "unknown@unknown.invalid";
-  fprintf(mStream, "From %s %s\n", address.data(),
-          (const char *)aMsg->dateShortStr());
+  QCString messageSeparator( aMsg->mboxMessageSeparator() );
+  fwrite( messageSeparator.data(), messageSeparator.length(), 1, mStream );
   off_t offs = ftell(mStream);
   fwrite(msgText, len, 1, mStream);

--- kdepim/kmail/kmmessage.cpp  #1.451.2.2:1.451.2.3
@@ -4194,2 +4194,18 @@ QString KMMessage::bodyToUnicode(const Q
 }
 
+//-----------------------------------------------------------------------------
+QCString KMMessage::mboxMessageSeparator()
+{
+  QCString str( fromEmail() );
+  if ( str.isEmpty() )
+    str = "unknown@unknown.invalid";
+  QCString dateStr( dateShortStr() );
+  if ( dateStr.isEmpty() ) {
+    time_t t = ::time( 0 );
+    dateStr = ctime( &t );
+    const int len = dateStr.length();
+    if ( dateStr[len-1] == '\n' )
+      dateStr.truncate( len - 1 );
+  }
+  return "From " + str + " " + dateStr + "\n";
+}

--- kdepim/kmail/kmmessage.h  #1.157:1.157.4.1
@@ -297,4 +297,6 @@ public:
   /** Get or set the 'Date' header field */
   QString dateStr() const;
+  /** Returns the message date in asctime format or an empty string if the
+      message lacks a Date header. */
   QCString dateShortStr() const;
   QString dateIsoStr() const;
@@ -795,4 +797,10 @@ public:
   DwBodyPart* lastUpdatedPart() { return mLastUpdated; }
 
+  /** Returns an mbox message separator line for this message, i.e. a
+      string of the form
+      "From local@domain.invalid Sat Jun 12 14:00:00 2004\n".
+  */
+  QCString mboxMessageSeparator();
+
 private:
   /** Returns message body with quoting header and indented by the


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

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