]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/l4re-core/uclibc/lib/contrib/uclibc/libc/stdio/__fpurge.c
Update
[l4.git] / l4 / pkg / l4re-core / uclibc / lib / contrib / uclibc / libc / stdio / __fpurge.c
1 /* Copyright (C) 2004       Manuel Novoa III    <mjn3@codepoet.org>
2  *
3  * GNU Library General Public License (LGPL) version 2 or later.
4  *
5  * Dedicated to Toni.  See uClibc/DEDICATION.mjn3 for details.
6  */
7
8 #include "_stdio.h"
9 #include <stdio_ext.h>
10
11 /* Solaris function --
12  * Discard all buffered data whether reading or writing.
13  */
14
15 void __fpurge(register FILE * __restrict stream)
16 {
17         __STDIO_STREAM_VALIDATE(stream);
18
19         __STDIO_STREAM_DISABLE_GETC(stream);
20         __STDIO_STREAM_DISABLE_PUTC(stream);
21         __STDIO_STREAM_INIT_BUFREAD_BUFPOS(stream);
22         stream->__ungot[1] = 0;
23
24 #ifdef __STDIO_MBSTATE
25         __INIT_MBSTATE(&(stream->__state));
26 #endif
27 #ifdef __UCLIBC_HAS_WCHAR__
28         stream->__ungot_width[0] = 0;
29 #endif
30
31         stream->__modeflags &= ~(__MASK_READING|__FLAG_WRITING);
32
33         __STDIO_STREAM_VALIDATE(stream);
34 }