char *fgetsTimeout(PVStr(b),int s,FILE *fp,int tout) { int stout; const char *rs; alertVStr(b,s); if( tout ){ stout = IO_TIMEOUT; IO_TIMEOUT = tout; rs = fgetsTIMEOUT(BVStr(b),s,fp); IO_TIMEOUT = stout; }else rs = Xfgets(BVStr(b),s,fp); return (char*)rs; }
char *authgetpass(VOID_A) { char *cp; #ifdef FD cp = inputpass(); #else /* !FD */ # ifdef NOGETPASS VOID_C Xfputs("Password:"******"Password:"))) cp = vnullstr; cp = Xstrdup(cp); # endif #endif /* !FD */ return(cp); }
char *fgetsTIMEOUT(xPVStr(b),int s,FILE *fp) { const char *b0; const char *rs; int rc; alertVStr(b,s); setVStrEnd(b,0); if( feof(fp) ){ sv1log("-- Tried fgetsTIMEOUT() for EOF file.\n"); return NULL; } b0 = b; rc = 0; if( 0 < READYCC(fp) ){ rs = fgetsIfReady(BVStr(b),s,fp,&rc); if( 0 < rc && b[rc-1] == '\n' || feof(fp) || rc == s-1 ) return (char*)rs; b += rc; s -= rc; } if( 0 < FL_xPollIn(whStr(b),fileno(fp),IO_TIMEOUT*1000) ) rs = Xfgets(BVStr(b),s,fp); else{ CStr(wh,128); VStrId(AVStr(wh),BVStr(b)); sv1log("fgets(%d) -- IO_TIMEOUT(%d) %s\n",s,IO_TIMEOUT,wh); /* sv1log("fgets(%d) -- IO_TIMEOUT(%d)\n",s,IO_TIMEOUT); */ rs = NULL; } if( rs == NULL && rc == 0 ) return NULL; else return (char*)b0; }