1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| | #include "stdio_impl.h"
int __towrite(FILE *f)
{
f->mode |= f->mode-1;
if (f->flags & F_NOWR) {
f->flags |= F_ERR;
return EOF;
}
/* Adjust offset for already buffered but not readed data */
if (f->rend - f->rpos > 0 &&
f->seek(f, f->rpos - f->rend, SEEK_CUR) < 0)
return EOF;
/* Clear read buffer (easier than summoning nasal demons) */
f->rpos = f->rend = 0;
/* Activate write through the buffer. */
f->wpos = f->wbase = f->buf;
f->wend = f->buf + f->buf_size;
return 0;
}
hidden void __towrite_needs_stdio_exit()
{
__stdio_exit_needed();
}
|