about summary refs log tree commit diff
path: root/src/stdio/ext.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/stdio/ext.c')
-rw-r--r--src/stdio/ext.c57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/stdio/ext.c b/src/stdio/ext.c
new file mode 100644
index 00000000..d5a403b6
--- /dev/null
+++ b/src/stdio/ext.c
@@ -0,0 +1,57 @@
+#define _GNU_SOURCE
+#include "stdio_impl.h"
+#include <stdio_ext.h>
+
+void _flushlbf(void)
+{
+	fflush(0);
+}
+
+int __fsetlocking(FILE *f, int type)
+{
+	return 0;
+}
+
+int __fwriting(FILE *f)
+{
+	return f->wend > f->wpos;
+}
+
+int __freading(FILE *f)
+{
+	return f->rend > f->rpos;
+}
+
+int __freadable(FILE *f)
+{
+	return !(f->flags & F_NORD);
+}
+
+int __fwritable(FILE *f)
+{
+	return !(f->flags & F_NOWR);
+}
+
+int __flbf(FILE *f)
+{
+	return f->lbf >= 0;
+}
+
+size_t __fbufsize(FILE *f)
+{
+	return f->buf_size;
+}
+
+size_t __fpending(FILE *f)
+{
+	return f->wend ? f->wpos - f->wbase : 0;
+}
+
+int __fpurge(FILE *f)
+{
+	f->wpos = f->wbase = f->wend = 0;
+	f->rpos = f->rend = 0;
+	return 0;
+}
+
+weak_alias(__fpurge, fpurge);