mirror of
https://github.com/0intro/wmii
synced 2024-11-25 07:09:38 +03:00
34 lines
462 B
C
34 lines
462 B
C
|
#include "plan9.h"
|
||
|
#include <bio.h>
|
||
|
|
||
|
int
|
||
|
Bflush(Biobuf *bp)
|
||
|
{
|
||
|
int n, c;
|
||
|
|
||
|
switch(bp->state) {
|
||
|
case Bwactive:
|
||
|
n = bp->bsize+bp->ocount;
|
||
|
if(n == 0)
|
||
|
return 0;
|
||
|
c = write(bp->fid, bp->bbuf, n);
|
||
|
if(n == c) {
|
||
|
bp->offset += n;
|
||
|
bp->ocount = -bp->bsize;
|
||
|
return 0;
|
||
|
}
|
||
|
bp->state = Binactive;
|
||
|
bp->ocount = 0;
|
||
|
break;
|
||
|
|
||
|
case Bracteof:
|
||
|
bp->state = Bractive;
|
||
|
|
||
|
case Bractive:
|
||
|
bp->icount = 0;
|
||
|
bp->gbuf = bp->ebuf;
|
||
|
return 0;
|
||
|
}
|
||
|
return Beof;
|
||
|
}
|