#include "wcio.h"
#include "fileext.h"
#include <limits.h>
#include <stdarg.h>
#include <stdbool.h>
extern int __sflush(FILE *);
extern FILE *__sfp(void);
extern void __sfpinit(FILE *);
extern int __srefill(FILE *);
extern ssize_t __sread(void *, void *, size_t);
extern ssize_t __swrite(void *, const void *, size_t);
extern off_t __sseek(void *, off_t, int);
extern int __sclose(void *);
extern void __sinit(void);
extern void _cleanup(void);
extern void (*__cleanup)(void);
extern void __smakebuf(FILE *);
extern int __swhatbuf(FILE *, size_t *, int *);
extern int _fwalk(int (*)(FILE *));
extern char *_mktemp(char *);
extern int __swsetup(FILE *);
extern int __sflags(const char *, int *);
extern int __svfscanf(FILE * __restrict, const char * __restrict,
va_list) __scanflike(2, 0);
extern int __svfscanf_l(FILE * __restrict, locale_t,
const char * __restrict, va_list) __scanflike(3, 0);
extern int __svfscanf_unlocked_l(FILE * __restrict, locale_t,
const char * __restrict, va_list) __scanflike(3, 0);
extern int __vfprintf_unlocked_l(FILE * __restrict, locale_t,
const char * __restrict, va_list) __printflike(3, 0);
extern int __sdidinit;
extern wint_t __fgetwc_unlock(FILE *);
extern wint_t __fputwc_unlock(wchar_t, FILE *);
extern ssize_t __getdelim(char **__restrict, size_t *__restrict, int,
FILE *__restrict);
extern char *__fgetstr(FILE * __restrict, size_t * __restrict, int);
extern int __vfwprintf_unlocked_l(FILE *, locale_t, const wchar_t *, va_list);
extern int __vfwscanf_unlocked_l(FILE * __restrict, locale_t,
const wchar_t * __restrict, va_list);
#define cantwrite(fp) \
((((fp)->_flags & __SWR) == 0 || (fp)->_bf._base == NULL) && \
__swsetup(fp))
#define HASUB(fp) (_UB(fp)._base != NULL)
#define FREEUB(fp) { \
if (_UB(fp)._base != (fp)->_ubuf) \
free((char *)_UB(fp)._base); \
_UB(fp)._base = NULL; \
}
#define FREELB(fp) { \
free(_EXT(fp)->_fgetstr_buf); \
_EXT(fp)->_fgetstr_buf = NULL; \
_EXT(fp)->_fgetstr_len = 0; \
}
extern void __flockfile_internal(FILE *, int);
extern void __funlockfile_internal(FILE *, int);
extern char *__gets(char *);
static __inline bool
__long_overflow(off_t pos)
{
return (pos < LONG_MIN) || (pos > LONG_MAX);
}