]> git.g-eek.se Git - interimap.git/commitdiff
Don't push non-existing mailboxes to @MAILBOXES.
authorGuilhem Moulin <guilhem@fripost.org>
Wed, 29 Jul 2015 22:10:28 +0000 (00:10 +0200)
committerGuilhem Moulin <guilhem@fripost.org>
Wed, 29 Jul 2015 22:10:28 +0000 (00:10 +0200)
imapsync

index ae051639eae13b590c8db00551fd93ec57a30b0f..d46c262434a04497984f9a2472943547bab5a1e3 100755 (executable)
--- a/imapsync
+++ b/imapsync
@@ -408,13 +408,13 @@ my @MAILBOXES;
     $mailboxes{$_} = 1 foreach keys %{$IMAP->{remote}->{mailboxes}};
     my $sth_subscribe = $DBH->prepare(q{UPDATE mailboxes SET subscribed = ? WHERE idx = ?});
 
-    @MAILBOXES = keys %mailboxes;
-    @MAILBOXES = grep !/$CONF->{_}->{'ignore-mailbox'}/, @MAILBOXES
-        if defined $CONF->{_}->{'ignore-mailbox'};
+    foreach my $mailbox (keys %mailboxes) {
+        next if defined $CONF->{_}->{'ignore-mailbox'} and $mailbox !~ /$CONF->{_}->{'ignore-mailbox'}/o;
+        my ($lExists, $rExists) = map {mbx_exists($_,$mailbox)} qw/local remote/;
+        next unless $lExists or $rExists;
 
-    foreach my $mailbox (@MAILBOXES) {
         check_delim($mailbox); # ensure that the delimiter match
-        my ($lExists, $rExists) = map {mbx_exists($_,$mailbox)} qw/local remote/;
+        push $mailbox, @MAILBOXES;
 
         $STH_GET_INDEX->execute($mailbox);
         my ($idx,$subscribed) = $STH_GET_INDEX->fetchrow_array();