#include <stdio.h>
#include "defines.h"

extern	int	_Cs_fcash_;
extern	unchar	*_Cs_cashbuff_;
extern	long	_Cs_csize_,_Cs_cseek_;

unchar *cash_fgets(unchar *str,int n,FILE *fp)
/* ミニ キャッシュ システム:fgets */
{
int i;
unchar *p,c;
	if (_Cs_fcash_<=0) return(fgets(str,n,fp));
	
	p=str;
	for (i=1;i<n && _Cs_cseek_<_Cs_csize_;i++) { /* i=0でないのはEOSのため */
		c=_Cs_cashbuff_[_Cs_cseek_++];
		*p++=c;
		if (c=='\n') break; /* 改行があった */
	}
	*p=0;
	return(_Cs_cseek_==_Cs_csize_? NULL:str);
}
