home *** CD-ROM | disk | FTP | other *** search
- /*
- ** vbcc-Amiga-PowerPC version of _putbuf.c
- **
- ** v0.1 04.10.97 phx
- */
-
- #include <stdlib.h>
- #include <stdio.h>
- #include <powerup/gcclib/powerup_protos.h>
-
- /* write data from buffer */
- /* inserts c as a new character, if c!=EOF */
- int _putbuf(int c,FILE *f)
- {
- _chkabort();
- if(!f) return(EOF);
- if((f->flags&(_WRITEABLE|_READ|_EOF|_ERR))!=_WRITEABLE) return(EOF);
- 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);
- }else{
- int len=f->pointer-f->base;
- if(f->flags&_WRITE)
- if(PPCWrite((BPTR)f->filehandle,f->base,len)!=len) return(EOF);
- }
- f->flags|=_WRITE;
- f->pointer=f->base;
- f->count=f->bufsize;
- *f->pointer++=c;
- f->count--;
- return(0); /* hier noch ueberlegen */
- }
-