1dc5a79c1SDavid du Colombier /* 2dc5a79c1SDavid du Colombier * pANS stdio -- ftello 3dc5a79c1SDavid du Colombier */ 4dc5a79c1SDavid du Colombier #include "iolib.h" ftello(FILE * f)5dc5a79c1SDavid du Colombierlong long ftello(FILE *f){ 6*22df390cSDavid du Colombier long long seekp=seek(f->fd, 0, SEEK_CUR); 7dc5a79c1SDavid du Colombier if(seekp<0) return -1; /* enter error state? */ 8dc5a79c1SDavid du Colombier switch(f->state){ 9dc5a79c1SDavid du Colombier default: 10dc5a79c1SDavid du Colombier return seekp; 11dc5a79c1SDavid du Colombier case RD: 12dc5a79c1SDavid du Colombier return seekp-(f->wp-f->rp); 13dc5a79c1SDavid du Colombier case WR: 14dc5a79c1SDavid du Colombier return (f->flags&LINEBUF?f->lp:f->wp)-f->buf+seekp; 15dc5a79c1SDavid du Colombier } 16dc5a79c1SDavid du Colombier } 17