#include <stdlib.h>
#include <stdio.h>

#include <proto/dos.h>

/*  liest Daten in den Buffer   */
int _fillbuf(FILE *f)
{
    _chkabort();
    if(!f) return(EOF);
    if((f->flags&(_READABLE|_WRITE|_EOF|_ERR))!=_READABLE) return(EOF);
    f->flags|=_READ;
    if(!f->bufsize){if(f->flags&_UNBUF) f->bufsize=1; else f->bufsize=BUFSIZ;}
    if(!f->base)
        if(!(f->base=(char *)malloc(f->bufsize+1)+1))
            return(EOF);
    f->pointer=f->base;
    f->count=Read((BPTR)f->filehandle,f->pointer,(long)f->bufsize);
    if(--f->count<0){
        if(f->count==-1) f->flags|=_EOF;
         else            f->flags|=_ERR;
        f->count=0;
        return(EOF);
    }
    return((unsigned char) *f->pointer++);
}
