Exemple #1
0
Fichier : fcin.c Projet : att/ast
//
// Synchronize and close the current stream.
//
int fcclose(void) {
    unsigned char *ptr;

    if (_Fcin.fclast == 0) return 0;
    if ((ptr = _Fcin.fcptr) > _Fcin.fcbuff && *(ptr - 1) == 0) _Fcin.fcptr--;
    if (_Fcin.fcchar) *_Fcin.fclast = _Fcin.fcchar;
    _Fcin.fclast = NULL;
    _Fcin.fcleft = 0;
    return fcfill();
}
Exemple #2
0
/*
 * Synchronize and close the current stream
 */
int fcclose(void)
{
	register unsigned char *ptr;
	if(_Fcin.fclast==0)
		return(0);
	if((ptr=_Fcin.fcptr)>_Fcin.fcbuff && *(ptr-1)==0)
		_Fcin.fcptr--;
	if(_Fcin.fcchar)
		*_Fcin.fclast = _Fcin.fcchar;
	_Fcin.fclast = 0;
	_Fcin.fcleft = 0;
	return(fcfill());
}
Exemple #3
0
Fichier : fcin.c Projet : att/ast
//
// This was originally implemented as a macro:
//   #define fcgetc(c) (((c = fcget()) || (c = fcfill())), c)
//
// However, that is an ugly API that causes lots of lint warnings.
//
int fcgetc() {
    int c = fcget();
    if (!c) c = fcfill();
    return c;
}