mutt stable branch with some hacks
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Don't abort the menu editor on sigwinch. (closes #3875)

getch() will return ERR on sigwinch when timeout() is called with a
positive value. mutt_getch() will therefore return ch==-2 for both a
timeout and a sigwinch in this case.

The imap code in km_dokey() exits out of the ImapKeepalive loop for a
SigWinch, and was skipping past the check for MENU_EDITOR and
tmp.ch==-2. Move this check below the gotkey: label so the
ImapKeepalive loop behaves the same as the Timeout code.

Thanks to nicop for reporting the problem and for the initial patch!

+7 -6
+3 -2
curs_lib.c
··· 125 125 return err; 126 126 } 127 127 128 - if(ch == ERR) 128 + /* either timeout, a sigwinch (if timeout is set), or the terminal 129 + * has been lost */ 130 + if (ch == ERR) 129 131 { 130 - /* either timeout or the terminal has been lost */ 131 132 if (!isatty (0)) 132 133 { 133 134 endwin ();
+4 -4
keymap.c
··· 461 461 tmp = mutt_getch(); 462 462 timeout (-1); 463 463 464 - /* hide timeouts from line editor */ 465 - if (menu == MENU_EDITOR && tmp.ch == -2) 466 - continue; 467 - 468 464 #ifdef USE_IMAP 469 465 gotkey: 470 466 #endif 467 + /* hide timeouts and window resizes from line editor. */ 468 + if (menu == MENU_EDITOR && tmp.ch == -2) 469 + continue; 470 + 471 471 LastKey = tmp.ch; 472 472 if (LastKey < 0) 473 473 return -1;