#include <string.h>
#include "defines.h"
#include "acash.h"

int cash2_fread(unchar *buff,int size,int count,CFILE *fp)
/* ミニ キャッシュ２:fread */
{
int cnt;
	if (!fp->cflag) return(fread(buff,size,count,fp->cfp));
	/* キャッシュバッファーから読む時 */
	if (fp->cseek+size*count<=fp->csize) { /* 指定分全部読み込める時 */
		memcpy(buff,&fp->cbuff[fp->cseek],size*count);
		fp->cseek+=(size*count);
		return(count);
	} else { /* 全部読み込めない時は読み込めるだけ */
		cnt=(fp->csize-fp->cseek)/size; /* 読み込めるcount数 */
		if (cnt>0) {
			memcpy(buff,&fp->cbuff[fp->cseek],size*cnt);
			fp->cseek+=(size*cnt);
		}
		return(cnt);
	}
}
