summaryrefslogtreecommitdiffstats
path: root/newlib/libc/stdio/fpurge.c
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/stdio/fpurge.c')
-rw-r--r--newlib/libc/stdio/fpurge.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/newlib/libc/stdio/fpurge.c b/newlib/libc/stdio/fpurge.c
index 41228efd7..7e23bb7fd 100644
--- a/newlib/libc/stdio/fpurge.c
+++ b/newlib/libc/stdio/fpurge.c
@@ -11,6 +11,8 @@ INDEX
fpurge
INDEX
_fpurge_r
+INDEX
+ __fpurge
ANSI_SYNOPSIS
#include <stdio.h>
@@ -18,6 +20,11 @@ ANSI_SYNOPSIS
int _fpurge_r(struct _reent *<[reent]>, FILE *<[fp]>);
+ #include <stdio.h>
+ #include <stdio_ext.h>
+ void __fpurge(FILE *<[fp]>);
+
+
DESCRIPTION
Use <<fpurge>> to clear all buffers of the given stream. For output
streams, this discards data not yet written to disk. For input streams,
@@ -26,6 +33,8 @@ but not yet read via <<getc>>. This is more severe than <<fflush>>,
and generally is only needed when manually altering the underlying file
descriptor of a stream.
+<<__fpurge>> behaves exactly like <<fpurge>> but does not return a value.
+
The alternate function <<_fpurge_r>> is a reentrant version, where the
extra argument <[reent]> is a pointer to a reentrancy structure, and
<[fp]> must not be NULL.
@@ -42,6 +51,9 @@ No supporting OS subroutines are required.
#include <_ansi.h>
#include <stdio.h>
+#ifndef __rtems__
+#include <stdio_ext.h>
+#endif
#include <errno.h>
#include "local.h"
@@ -87,4 +99,15 @@ _DEFUN(fpurge, (fp),
return _fpurge_r (_REENT, fp);
}
+#ifndef __rtems__
+
+void
+_DEFUN(__fpurge, (fp),
+ register FILE * fp)
+{
+ _fpurge_r (_REENT, fp);
+}
+
+#endif
+
#endif /* _REENT_ONLY */