]> git.g-eek.se Git - interimap.git/commitdiff
Fix detection of boolean options.
authorGuilhem Moulin <guilhem@fripost.org>
Sun, 13 Sep 2015 11:37:50 +0000 (13:37 +0200)
committerGuilhem Moulin <guilhem@fripost.org>
Sun, 13 Sep 2015 12:47:00 +0000 (14:47 +0200)
interimap
lib/Net/IMAP/InterIMAP.pm

index 4a8bde42e424140976edd1b9a159661b4746e043..153573982229d54f58e3bfee83b21c1935601240 100755 (executable)
--- a/interimap
+++ b/interimap
@@ -249,7 +249,7 @@ foreach my $name (qw/local remote/) {
     $config{enable} = 'QRESYNC';
     $config{name} = $name;
     $config{'logger-fd'} = $LOGGER_FD if defined $LOGGER_FD;
-    $config{'compress'} //= ($name eq 'local' ? 'NO' : 'YES');
+    $config{'compress'} //= ($name eq 'local' ? 0 : 1);
 
     $IMAP->{$name} = { client => Net::IMAP::InterIMAP::->new(%config) };
     my $client = $IMAP->{$name}->{client};
@@ -514,7 +514,7 @@ sub sync_mailbox_list() {
 sync_mailbox_list();
 ($lIMAP, $rIMAP) = map {$IMAP->{$_}->{client}} qw/local remote/;
 my $ATTRS = 'MODSEQ FLAGS INTERNALDATE '.
-            (((!defined $CONF->{_} or uc ($CONF->{_}->{'use-binary'} // 'YES') eq 'YES') and
+            (((!defined $CONF->{_} or $CONF->{_}->{'use-binary'} // 1) and
              !$lIMAP->incapable('BINARY') and !$rIMAP->incapable('BINARY'))
                 ? 'BINARY' : 'BODY').'.PEEK[]';
 
index 65a0c10beea2b860a4f8c5d0ba2cd562c04e2ab0..678e09d6b06511ac022b68ded8f649782f59c7d4 100644 (file)
@@ -100,7 +100,7 @@ sub read_config($$%) {
             die "Invalid option $k\n" unless defined $opts{$k};
             next unless defined $conf->{$k};
             die "Invalid option $k = $conf->{$k}\n" unless $conf->{$k} =~ $opts{$k};
-            $conf->{$k} = $1;
+            $conf->{$k} = $opts{$k} ne qr/\A(YES|NO)\z/i ? $1 : uc $1 eq 'YES' ? 1 : 0;
         }
     }
     return \%configs;
@@ -221,15 +221,6 @@ sub new($%) {
     my $self = { @_ };
     bless $self, $class;
 
-    foreach (keys %$self) {
-        next unless defined $self->{$_};
-        if (uc $self->{$_} eq 'YES') {
-            $self->{$_} = 1;
-        } elsif (uc $self->{$_} eq 'NO') {
-            $self->{$_} = 0;
-        }
-    }
-
     # the IMAP state: one of 'UNAUTH', 'AUTH', 'SELECTED' or 'LOGOUT'
     # (cf RFC 3501 section 3)
     $self->{_STATE} = '';