add and consolidate nasty stdio_ext junk

hopefully this resolves the rest of the issues with hideously
nonportable hacks in programs that use gnulib.
This commit is contained in:
Rich Felker
2011-06-30 12:44:48 -04:00
parent 7640497f5f
commit a0b56b947a
4 changed files with 84 additions and 17 deletions

View File

@ -1,6 +0,0 @@
#include "stdio_impl.h"
size_t __fpending(FILE *f)
{
return f->wend ? f->wpos - f->wbase : 0;
}

57
src/stdio/ext.c Normal file
View File

@ -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);

View File

@ -1,11 +0,0 @@
#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);