]> git.lizzy.rs Git - plan9front.git/blob - sys/src/libstdio/fseeko.c
fix typo
[plan9front.git] / sys / src / libstdio / fseeko.c
1 /*
2  * pANS stdio -- fseeko
3  */
4 #include "iolib.h"
5 int fseeko(FILE *f, long long offs, int type){
6         switch(f->state){
7         case ERR:
8         case CLOSED:
9                 return -1;
10         case WR:
11                 fflush(f);
12                 break;
13         case RD:
14                 if(type==1 && f->buf!=f->unbuf)
15                         offs-=f->wp-f->rp;
16                 break;
17         }
18         if(f->flags&STRING || seek(f->fd, offs, type)==-1) return -1;
19         if(f->state==RD) f->rp=f->wp=f->buf;
20         if(f->state!=OPEN)
21                 f->state=RDWR;
22         return 0;
23 }