home *** CD-ROM | disk | FTP | other *** search
/ EuroCD 3 / EuroCD 3.iso / Programming / vbcc / machines / amigappc / libsrc / stdio / _flushbuf.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-06-24  |  593 b   |  27 lines

  1. /*
  2. ** vbcc-Amiga-PowerPC version of _flushbuf.c
  3. **
  4. ** v0.1 04.10.97 phx
  5. */
  6.  
  7. #include <stdio.h>
  8. #include <powerup/gcclib/powerup_protos.h>
  9.  
  10. /* flushes remaining data from buffer */
  11. int _flushbuf(FILE *f)
  12. {
  13.     _chkabort();
  14.     if(!f) return(EOF);
  15.     if(!f->bufsize){if(f->flags&_UNBUF) f->bufsize=1; else f->bufsize=BUFSIZ;}
  16.     if(!f->base) return(0);
  17.     if(f->flags&_WRITE){
  18.         int len=f->bufsize-f->count;
  19.         if(PPCWrite((BPTR)f->filehandle,f->base,len)!=len)
  20.             return(EOF);
  21.     }
  22.     f->pointer=f->base;
  23.     f->count=0;
  24.     f->flags&=~(_READ|_WRITE);
  25.     return(0);
  26. }
  27.