Beispiel #1
0
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;
}
Beispiel #2
0
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);
}
Beispiel #3
0
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;
}