On Wed, May 24 2017 09:34:12 -0700, Kevin J. McCarthy wrote:
> On Wed, May 24, 2017 at 05:19:01PM +0300, Lauri Tirkkonen wrote:
> > I noticed that while mutt does support eg. IDLE for IMAP, it's not quite
> > as useful as it could be because recv() is not actually called on the
> > socket until timeout happens or terminal input is received. I made this
> > horribly ugly patch that uses select(2) instead of waiting on just stdin
> > -- it makes new mail/flag changes appear pretty much instantly if IDLE
> > is used. It's mostly just a proof of concept: a clean implementation
> > would require some more work around how input is handled.
> 
> Thank you for the patch.  I _will_ take a look at this, but I have a few
> things on my todo list I need to work my way through first.

Thanks. It needs a small amendment to avoid segfaulting when sending
mail via smtp, and there's at least one other bug remaning: "tag-" won't
be visible after hitting tag-prefix (I assume mutt_getch used to flush
it onto the screen). Like I mentioned, this isn't the cleanest patch :)

diff -r e023d301de1b keymap.c
--- a/keymap.c  Wed May 24 17:29:32 2017 +0300
+++ b/keymap.c  Fri May 26 10:56:13 2017 +0300
@@ -451,6 +451,8 @@
       nfds = STDIN_FILENO + 1;
       for (CONNECTION *c = mutt_socket_head (); c != NULL; c = c->next)
       {
+       if (c->fd < 0)
+         continue;
        FD_SET (c->fd, &rfds);
        if (nfds < c->fd + 1)
            nfds = c->fd + 1;

-- 
Lauri Tirkkonen | lotheac @ IRCnet

Reply via email to