mirror of git://git.musl-libc.org/musl
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:
parent
7640497f5f
commit
a0b56b947a
|
@ -0,0 +1,27 @@
|
||||||
|
#ifndef _STDIO_EXT_H
|
||||||
|
#define _STDIO_EXT_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FSETLOCKING_QUERY 0
|
||||||
|
#define FSETLOCKING_INTERNAL 1
|
||||||
|
#define FSETLOCKING_BYCALLER 2
|
||||||
|
|
||||||
|
void _flushlbf(void);
|
||||||
|
int __fsetlocking(FILE *, int);
|
||||||
|
int __fwriting(FILE *);
|
||||||
|
int __freading(FILE *);
|
||||||
|
int __freadable(FILE *);
|
||||||
|
int __fwritable(FILE *);
|
||||||
|
int __flbf(FILE *);
|
||||||
|
size_t __fbufsize(FILE *);
|
||||||
|
size_t __fpending(FILE *);
|
||||||
|
int __fpurge(FILE *);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
|
@ -1,6 +0,0 @@
|
||||||
#include "stdio_impl.h"
|
|
||||||
|
|
||||||
size_t __fpending(FILE *f)
|
|
||||||
{
|
|
||||||
return f->wend ? f->wpos - f->wbase : 0;
|
|
||||||
}
|
|
|
@ -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);
|
|
@ -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);
|
|
Loading…
Reference in New Issue