]> git.g-eek.se Git - interimap.git/commitdiff
Compress "No match for vanished local/remote UID ..." warnings.
authorGuilhem Moulin <guilhem@fripost.org>
Mon, 31 Aug 2015 22:46:12 +0000 (00:46 +0200)
committerGuilhem Moulin <guilhem@fripost.org>
Mon, 31 Aug 2015 22:51:11 +0000 (00:51 +0200)
imapsync

index a00708982ac92c25980ccb917a96d70e189fd6eb..f7c5234b2028dda2bb78d3518e415eadc1c419be 100755 (executable)
--- a/imapsync
+++ b/imapsync
@@ -727,8 +727,12 @@ sub repair($) {
 
 
     # Process UID found in IMAP but not in the mapping table.
-    msg("remote($mailbox)", "WARNING: No match for vanished local UID $_. Ignoring.") foreach keys %lVanished;
-    msg("local($mailbox)", "WARNING: No match for vanished remote UID $_. Ignoring.") foreach keys %rVanished;
+    my @lDunno = keys %lVanished;
+    my @rDunno = keys %rVanished;
+    msg("remote($mailbox)", "WARNING: No match for ".($#lDunno+1)." vanished local UID(s) "
+                            .compact_set(@lDunno).". Ignoring.") if @lDunno;
+    msg("local($mailbox)",  "WARNING: No match for ".($#rDunno+1)." vanished remote UID(s) "
+                            .compact_set(@rDunno).". Ignoring.") if @rDunno;
 
     foreach my $lUID (keys %$lModified) {
         msg("remote($mailbox)", "WARNING: No match for modified local UID $lUID. Downloading again.");
@@ -777,13 +781,13 @@ sub sync_known_messages($$) {
             # other side (from the DB); consider it as to be removed if
             # it hasn't been removed already.
 
-            my (@lToRemove, @rToRemove);
+            my (@lToRemove, @rToRemove, @lDunno, @rDunno);
             foreach my $lUID (@$lVanished) {
                 $STH_GET_REMOTE_UID->execute($idx, $lUID);
                 my ($rUID) = $STH_GET_REMOTE_UID->fetchrow_array();
                 die if defined $STH_GET_REMOTE_UID->fetchrow_arrayref(); # sanity check
                 if (!defined $rUID) {
-                    msg("remote($mailbox)", "WARNING: No match for vanished local UID $lUID. Ignoring.");
+                    push @lDunno, $lUID;
                 }
                 elsif (!exists $rVanished{$rUID}) {
                     push @rToRemove, $rUID;
@@ -794,13 +798,18 @@ sub sync_known_messages($$) {
                 my ($lUID) = $STH_GET_LOCAL_UID->fetchrow_array();
                 die if defined $STH_GET_LOCAL_UID->fetchrow_arrayref(); # sanity check
                 if (!defined $lUID) {
-                    msg("local($mailbox)", "WARNING: No match for vanished remote UID $rUID. Ignoring.");
+                    push @rDunno, $rUID;
                 }
                 elsif (!exists $lVanished{$lUID}) {
                     push @lToRemove, $lUID;
                 }
             }
 
+            msg("remote($mailbox)", "WARNING: No match for ".($#lDunno+1)." vanished local UID(s) "
+                                    .compact_set(@lDunno).". Ignoring.") if @lDunno;
+            msg("local($mailbox)",  "WARNING: No match for ".($#rDunno+1)." vanished remote UID(s) "
+                                    .compact_set(@rDunno).". Ignoring.") if @rDunno;
+
             $lIMAP->remove_message(@lToRemove) if @lToRemove;
             $rIMAP->remove_message(@rToRemove) if @rToRemove;