浏览代码

implement the nonstandard GNU function fpurge

this is a really ugly and backwards function, but its presence will
prevent lots of broken gnulib software from trying to define its own
version of fpurge and thereby failing to build or worse.
Rich Felker 13 年之前
父节点
当前提交
7640497f5f
共有 2 个文件被更改,包括 12 次插入0 次删除
  1. 1 0
      include/stdio.h
  2. 11 0
      src/stdio/fpurge.c

+ 1 - 0
include/stdio.h

@@ -158,6 +158,7 @@ int asprintf(char **, const char *, ...);
 int vasprintf(char **, const char *, va_list);
 int vasprintf(char **, const char *, va_list);
 void setlinebuf(FILE *);
 void setlinebuf(FILE *);
 void setbuffer(FILE *, char *, size_t);
 void setbuffer(FILE *, char *, size_t);
+int fpurge(FILE *);
 #endif
 #endif
 
 
 #ifdef __cplusplus
 #ifdef __cplusplus

+ 11 - 0
src/stdio/fpurge.c

@@ -0,0 +1,11 @@
+#define _GNU_SOURCE
+#include "stdio_impl.h"
+
+int __fpurge(FILE *f)
+{
+	f->wpos = f->wbase = f->wend = 0;
+	f->rpos = f->rend = 0;
+	return 0;
+}
+
+weak_alias(__fpurge, fpurge);