Index: get_wch.c =================================================================== RCS file: /cvsroot/src/lib/libcurses/get_wch.c,v retrieving revision 1.15 diff -u -r1.15 get_wch.c --- get_wch.c 18 Sep 2018 22:46:18 -0000 1.15 +++ get_wch.c 26 Sep 2018 14:26:23 -0000 @@ -103,7 +103,11 @@ c = fgetc(infd); if (c == WEOF) { clearerr(infd); - return ERR; + if (errno == EINTR && _cursesi_screen->resized) { + _cursesi_screen->resized = 0; + return KEY_RESIZE; + } else + return ERR; } if (delay && (__notimeout() == ERR)) @@ -151,7 +155,11 @@ c = fgetc(infd); if (ferror(infd)) { clearerr(infd); - return ERR; + if (errno == EINTR && _cursesi_screen->resized) { + _cursesi_screen->resized = 0; + return KEY_RESIZE; + } else + return ERR; } if ((to || delay) && (__notimeout() == ERR)) Index: getch.c =================================================================== RCS file: /cvsroot/src/lib/libcurses/getch.c,v retrieving revision 1.66 diff -u -r1.66 getch.c --- getch.c 18 Sep 2018 22:46:18 -0000 1.66 +++ getch.c 26 Sep 2018 14:26:23 -0000 @@ -563,7 +563,11 @@ c = fgetc(infd); if (c == EOF) { clearerr(infd); - return ERR; + if (errno == EINTR && _cursesi_screen->resized) { + _cursesi_screen->resized = 0; + return KEY_RESIZE; + } else + return ERR; } if (delay && (__notimeout() == ERR)) @@ -605,7 +609,11 @@ c = fgetc(infd); if (ferror(infd)) { clearerr(infd); - return ERR; + if (errno == EINTR && _cursesi_screen->resized) { + _cursesi_screen->resized = 0; + return KEY_RESIZE; + } else + return ERR; } if ((to || delay) && (__notimeout() == ERR))