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