提交 a0b56b94 编写于 作者: R Rich Felker

add and consolidate nasty stdio_ext junk

hopefully this resolves the rest of the issues with hideously
nonportable hacks in programs that use gnulib.
上级 7640497f
#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
#include "stdio_impl.h"
size_t __fpending(FILE *f)
{
return f->wend ? f->wpos - f->wbase : 0;
}
#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);
#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);
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册