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