Yep, I missed this case. This fix looks good to me. Thanks Rocco and Kyle. On Wednesday, 10 September 2008 at 17:54, Rocco Rutte wrote: > Hi, > > * Rocco Rutte wrote: > > > [4f67fc336986] removes the imap_keepalive() call from the pager's main > > loop and calls it everytime in km_dokey(). The change in [12a6de725483] > > however only calls imap_keepalive() if $imap_keepalive < $timeout. Maybe > > we need something like this handling the $imap_keepalive >= $timeout > > case: > > Here we go, Kyle can you try this one, please? > > Regards, Rocco > > # HG changeset patch > # User Rocco Rutte <rocco.rutte@xxxxxxxxxxx> > # Date 1221059942 -7200 > # Branch HEAD > # Node ID a2ddd8bae12a8997d0bded3f3368aa830670c445 > # Parent 17adea9cdff6dcd97b800f5061272360cdebacd1 > Fix IMAP keepalive if $imap_keepalive >= $timeout > > diff -r 17adea9cdff6 -r a2ddd8bae12a keymap.c > --- a/keymap.c Mon Sep 01 18:23:35 2008 +0200 > +++ b/keymap.c Wed Sep 10 17:19:02 2008 +0200 > @@ -390,16 +390,22 @@ > i = Timeout > 0 ? Timeout : 60; > #ifdef USE_IMAP > /* keepalive may need to run more frequently than Timeout allows */ > - while (ImapKeepalive && ImapKeepalive < i) > + if (ImapKeepalive) > { > - timeout (ImapKeepalive * 1000); > - tmp = mutt_getch (); > - timeout (-1); > - if (tmp.ch != -2) > - /* something other than timeout */ > - goto gotkey; > - i -= ImapKeepalive; > - imap_keepalive (); > + if (ImapKeepalive >= i) > + imap_keepalive (); > + else > + while (ImapKeepalive && ImapKeepalive < i) > + { > + timeout (ImapKeepalive * 1000); > + tmp = mutt_getch (); > + timeout (-1); > + if (tmp.ch != -2) > + /* something other than timeout */ > + goto gotkey; > + i -= ImapKeepalive; > + imap_keepalive (); > + } > } > #endif >
Attachment:
pgpANfN9MxTYK.pgp
Description: PGP signature