
Apply this with ``patch < ssfe.diff'' before compiling ssfe.

patch by Thomas Morgan <tmorgan@pobox.com>

*** ssfe.c.orig	Tue Jun 17 10:35:57 1997
--- ssfe.c	Mon Sep  1 19:28:31 1997
***************
*** 1053,1058 ****
--- 1053,1059 ----
  
    char *vr;
    int pfds0[2], pfds1[2], pfds2[2];
+   struct timeval timeout;
  
    myname=(*argv);
    prompt=nullstring;
***************
*** 1276,1286 ****
    FD_SET(readfd, &ready);
    FD_SET(errfd, &ready);
  
    while(1) {
      result=ready;
!     if (select(64, &result, NULL, NULL, NULL)<=0)
        if (errno==EINTR) continue;
        else cleanupexit(1, "select error");
  
      if (FD_ISSET(readfd, &result))
        if ((rc=read(readfd, readbuf, BUF_SIZE))>0)
--- 1277,1301 ----
    FD_SET(readfd, &ready);
    FD_SET(errfd, &ready);
  
+   timeout.tv_sec=0;
+   timeout.tv_usec=500000;
+ 
    while(1) {
+     int r;
      result=ready;
!     r=select(64, &result, NULL, NULL, (cursorwhere==1) ? NULL : &timeout);
!     if (r<0) {
        if (errno==EINTR) continue;
        else cleanupexit(1, "select error");
+     } else if (r==0) {
+       if (cursorwhere!=1) {
+ 	normal();
+ 	fullscroll();
+ 	gotoxy(inputcursor, yinput);
+ 	cursorwhere=1;
+       }
+       continue;
+     }
  
      if (FD_ISSET(readfd, &result))
        if ((rc=read(readfd, readbuf, BUF_SIZE))>0)

