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