cvs commit: patches/kdepim kdepim-3.2.0-kmail-1.patch kdepim-3.2.0-kmail.patch

jim at linuxfromscratch.org jim at linuxfromscratch.org
Mon Jun 7 10:34:21 PDT 2004


jim         04/06/07 11:34:21

  Added:       kdepim   kdepim-3.2.0-kmail-1.patch
  Removed:     kdepim   kdepim-3.2.0-kmail.patch
  Log:
  Naming Scheme Update
  
  Revision  Changes    Path
  1.1                  patches/kdepim/kdepim-3.2.0-kmail-1.patch
  
  Index: kdepim-3.2.0-kmail-1.patch
  ===================================================================
  Submitted By: BLFS Book <blfs-book at linuxfromscratch dot org>
  Date: 2004-02-15
  Initial Package Version: 3.2.0
  Origin: http://www.kde.org/info/3.2.php
  Description: Fixes two problems with KMail which can lead to
               mail loss.
  
  --- kdepim-3.2.0/kmail/kmfolderimap.cpp.orig	2004-02-15 12:39:50.000000000 +0000
  +++ kdepim-3.2.0/kmail/kmfolderimap.cpp	2004-02-15 12:40:13.000000000 +0000
  @@ -1207,7 +1207,16 @@
   {
     KURL url = mAccount->getUrl();
     KMFolderImap *msg_parent = static_cast<KMFolderImap*>(msg->parent());
  -  url.setPath(msg_parent->imapPath() + ";UID=" + msg->headerField("X-UID"));
  +  QString uid = msg->headerField("X-UID");
  +  /* If the uid is empty the delete job below will nuke all mail in the
  +     folder, so we better safeguard against that. See ::expungeFolder, as
  +     to why. :( */
  +  if ( uid.isEmpty() ) {
  +     kdDebug( 5006 ) << "KMFolderImap::deleteMessage: Attempt to delete "
  +                        "an empty UID. Aborting."  << endl;
  +     return;
  +  }
  +  url.setPath(msg_parent->imapPath() + ";UID=" + uid );
     if ( mAccount->makeConnection() != ImapAccountBase::Connected )
       return;
     KIO::SimpleJob *job = KIO::file_delete(url, FALSE);
  @@ -1228,7 +1237,11 @@
     KMFolderImap *msg_parent = static_cast<KMFolderImap*>(msgList.first()->parent());
     for ( QStringList::Iterator it = sets.begin(); it != sets.end(); ++it )
     {
  -    url.setPath(msg_parent->imapPath() + ";UID=" + *it);
  +    QString uid = *it;
  +    // Don't delete with no uid, that nukes the folder. Should not happen, but
  +    // better safe than sorry.
  +    if ( uid.isEmpty() ) continue;
  +    url.setPath(msg_parent->imapPath() + ";UID=" + uid);
       if ( mAccount->makeConnection() != ImapAccountBase::Connected )
         return;
       KIO::SimpleJob *job = KIO::file_delete(url, FALSE);
  --- kdepim-3.2.0/kmail/kmfilter.cpp.orig	2004-02-15 12:39:58.000000000 +0000
  +++ kdepim-3.2.0/kmail/kmfilter.cpp	2004-02-15 12:40:13.000000000 +0000
  @@ -147,9 +147,18 @@
     // that the pattern is purified.
     mPattern.readConfig(config);
   
  -  if (bPopFilter)
  +  if (bPopFilter) {
       // get the action description...
  -    mAction = (KMPopFilterAction) config->readNumEntry( "action" );
  +    QString action = config->readEntry( "action" );
  +    if ( action == "down" )
  +      mAction = Down;
  +    else if ( action == "later" )
  +      mAction = Later;
  +    else if ( action == "delete" )
  +      mAction = Delete;
  +    else
  +      mAction = NoAction;
  +  }
     else {
       QStringList sets = config->readListEntry("apply-on");
       if ( sets.isEmpty() && !config->hasKey("apply-on") ) {
  @@ -210,7 +219,19 @@
     mPattern.writeConfig(config);
   
     if (bPopFilter) {
  -    config->writeEntry( "action", mAction );
  +    switch ( mAction ) {
  +    case Down:
  +      config->writeEntry( "action", "down" );
  +      break;
  +    case Later:
  +      config->writeEntry( "action", "later" );
  +      break;
  +    case Delete:
  +      config->writeEntry( "action", "delete" );
  +      break;
  +    default:
  +      config->writeEntry( "action", "" );
  +    }
     } else {
       QStringList sets;
       if ( bApplyOnInbound )
  
  
  



More information about the patches mailing list