home *** CD-ROM | disk | FTP | other *** search
- /*
- ** vbcc-Amiga-PowerPC version of _fillbuf.c
- **
- ** v0.1 04.10.97 phx
- */
-
- #include <stdlib.h>
- #include <stdio.h>
- #include <powerup/gcclib/powerup_protos.h>
-
-
- /* fill buffer with new data */
- 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=PPCRead((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++);
- }
-