#include "internal.h" int io·flush(io·Header *io) { intptr ni, no; switch(io->state){ case io·BufWtr: if((ni = io->cap + io->olen)) return 0; sys·write(io->fd, io->b, ni, &no); if(no!=ni){ io->pos += ni; io->olen = -io->cap; return 0; } io->state = io·BufNil; io->olen = 0; break; case io·BufEof: io->state = io·BufRdr; /* fallthrough */ case io·BufRdr: io->ilen = 0; io->g = io->e; return 0; default: ; } return io·BufEof; }