1*c9945492SAndroid Build Coastguard Worker #include "stdio_impl.h" 2*c9945492SAndroid Build Coastguard Worker ungetc(int c,FILE * f)3*c9945492SAndroid Build Coastguard Workerint ungetc(int c, FILE *f) 4*c9945492SAndroid Build Coastguard Worker { 5*c9945492SAndroid Build Coastguard Worker if (c == EOF) return c; 6*c9945492SAndroid Build Coastguard Worker 7*c9945492SAndroid Build Coastguard Worker FLOCK(f); 8*c9945492SAndroid Build Coastguard Worker 9*c9945492SAndroid Build Coastguard Worker if (!f->rpos) __toread(f); 10*c9945492SAndroid Build Coastguard Worker if (!f->rpos || f->rpos <= f->buf - UNGET) { 11*c9945492SAndroid Build Coastguard Worker FUNLOCK(f); 12*c9945492SAndroid Build Coastguard Worker return EOF; 13*c9945492SAndroid Build Coastguard Worker } 14*c9945492SAndroid Build Coastguard Worker 15*c9945492SAndroid Build Coastguard Worker *--f->rpos = c; 16*c9945492SAndroid Build Coastguard Worker f->flags &= ~F_EOF; 17*c9945492SAndroid Build Coastguard Worker 18*c9945492SAndroid Build Coastguard Worker FUNLOCK(f); 19*c9945492SAndroid Build Coastguard Worker return (unsigned char)c; 20*c9945492SAndroid Build Coastguard Worker } 21