respect iso c namespace in stdio.h and wchar.h regarding va_list
despite declaring functions that take arguments of type va_list, these headers are not permitted by the c standard to expose the definition of va_list, so an alias for the type must be used. the name __isoc_va_list was chosen to convey that the purpose of this alternate name is for iso c conformance, and to avoid the multitude of names which gcc mangles with its hideous "fixincludes" monstrosity, leading to serious header breakage if these "fixes" are run.
This commit is contained in:
parent
8813c956e5
commit
a3e2f3c2b1
8 changed files with 26 additions and 17 deletions
|
|
@ -21,6 +21,7 @@ TYPEDEF int ssize_t;
|
||||||
TYPEDEF int ptrdiff_t;
|
TYPEDEF int ptrdiff_t;
|
||||||
|
|
||||||
TYPEDEF __builtin_va_list va_list;
|
TYPEDEF __builtin_va_list va_list;
|
||||||
|
TYPEDEF __builtin_va_list __isoc_va_list;
|
||||||
|
|
||||||
#ifndef __cplusplus
|
#ifndef __cplusplus
|
||||||
TYPEDEF unsigned wchar_t;
|
TYPEDEF unsigned wchar_t;
|
||||||
|
|
|
||||||
|
|
@ -22,8 +22,10 @@ TYPEDEF int ptrdiff_t;
|
||||||
|
|
||||||
#if __GNUC__ >= 3
|
#if __GNUC__ >= 3
|
||||||
TYPEDEF __builtin_va_list va_list;
|
TYPEDEF __builtin_va_list va_list;
|
||||||
|
TYPEDEF __builtin_va_list __isoc_va_list;
|
||||||
#else
|
#else
|
||||||
TYPEDEF struct __va_list * va_list;
|
TYPEDEF struct __va_list * va_list;
|
||||||
|
TYPEDEF struct __va_list * __isoc_va_list;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef __cplusplus
|
#ifndef __cplusplus
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ TYPEDEF int ssize_t;
|
||||||
TYPEDEF int ptrdiff_t;
|
TYPEDEF int ptrdiff_t;
|
||||||
|
|
||||||
TYPEDEF __builtin_va_list va_list;
|
TYPEDEF __builtin_va_list va_list;
|
||||||
|
TYPEDEF __builtin_va_list __isoc_va_list;
|
||||||
|
|
||||||
#ifndef __cplusplus
|
#ifndef __cplusplus
|
||||||
TYPEDEF int wchar_t;
|
TYPEDEF int wchar_t;
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ TYPEDEF int ssize_t;
|
||||||
TYPEDEF int ptrdiff_t;
|
TYPEDEF int ptrdiff_t;
|
||||||
|
|
||||||
TYPEDEF __builtin_va_list va_list;
|
TYPEDEF __builtin_va_list va_list;
|
||||||
|
TYPEDEF __builtin_va_list __isoc_va_list;
|
||||||
|
|
||||||
#ifndef __cplusplus
|
#ifndef __cplusplus
|
||||||
TYPEDEF int wchar_t;
|
TYPEDEF int wchar_t;
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ TYPEDEF int ssize_t;
|
||||||
TYPEDEF int ptrdiff_t;
|
TYPEDEF int ptrdiff_t;
|
||||||
|
|
||||||
TYPEDEF __builtin_va_list va_list;
|
TYPEDEF __builtin_va_list va_list;
|
||||||
|
TYPEDEF __builtin_va_list __isoc_va_list;
|
||||||
|
|
||||||
#ifndef __cplusplus
|
#ifndef __cplusplus
|
||||||
TYPEDEF long wchar_t;
|
TYPEDEF long wchar_t;
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ TYPEDEF unsigned long size_t;
|
||||||
TYPEDEF long ssize_t;
|
TYPEDEF long ssize_t;
|
||||||
TYPEDEF long ptrdiff_t;
|
TYPEDEF long ptrdiff_t;
|
||||||
TYPEDEF __builtin_va_list va_list;
|
TYPEDEF __builtin_va_list va_list;
|
||||||
|
TYPEDEF __builtin_va_list __isoc_va_list;
|
||||||
|
|
||||||
#ifndef __cplusplus
|
#ifndef __cplusplus
|
||||||
TYPEDEF int wchar_t;
|
TYPEDEF int wchar_t;
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ extern "C" {
|
||||||
#include <features.h>
|
#include <features.h>
|
||||||
|
|
||||||
#define __NEED_FILE
|
#define __NEED_FILE
|
||||||
#define __NEED_va_list
|
#define __NEED___isoc_va_list
|
||||||
#define __NEED_size_t
|
#define __NEED_size_t
|
||||||
|
|
||||||
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
|
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
|
||||||
|
|
@ -16,6 +16,7 @@ extern "C" {
|
||||||
|| defined(_BSD_SOURCE)
|
|| defined(_BSD_SOURCE)
|
||||||
#define __NEED_ssize_t
|
#define __NEED_ssize_t
|
||||||
#define __NEED_off_t
|
#define __NEED_off_t
|
||||||
|
#define __NEED_va_list
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <bits/alltypes.h>
|
#include <bits/alltypes.h>
|
||||||
|
|
@ -99,17 +100,17 @@ int fprintf(FILE *__restrict, const char *__restrict, ...);
|
||||||
int sprintf(char *__restrict, const char *__restrict, ...);
|
int sprintf(char *__restrict, const char *__restrict, ...);
|
||||||
int snprintf(char *__restrict, size_t, const char *__restrict, ...);
|
int snprintf(char *__restrict, size_t, const char *__restrict, ...);
|
||||||
|
|
||||||
int vprintf(const char *__restrict, va_list);
|
int vprintf(const char *__restrict, __isoc_va_list);
|
||||||
int vfprintf(FILE *__restrict, const char *__restrict, va_list);
|
int vfprintf(FILE *__restrict, const char *__restrict, __isoc_va_list);
|
||||||
int vsprintf(char *__restrict, const char *__restrict, va_list);
|
int vsprintf(char *__restrict, const char *__restrict, __isoc_va_list);
|
||||||
int vsnprintf(char *__restrict, size_t, const char *__restrict, va_list);
|
int vsnprintf(char *__restrict, size_t, const char *__restrict, __isoc_va_list);
|
||||||
|
|
||||||
int scanf(const char *__restrict, ...);
|
int scanf(const char *__restrict, ...);
|
||||||
int fscanf(FILE *__restrict, const char *__restrict, ...);
|
int fscanf(FILE *__restrict, const char *__restrict, ...);
|
||||||
int sscanf(const char *__restrict, const char *__restrict, ...);
|
int sscanf(const char *__restrict, const char *__restrict, ...);
|
||||||
int vscanf(const char *__restrict, va_list);
|
int vscanf(const char *__restrict, __isoc_va_list);
|
||||||
int vfscanf(FILE *__restrict, const char *__restrict, va_list);
|
int vfscanf(FILE *__restrict, const char *__restrict, __isoc_va_list);
|
||||||
int vsscanf(const char *__restrict, const char *__restrict, va_list);
|
int vsscanf(const char *__restrict, const char *__restrict, __isoc_va_list);
|
||||||
|
|
||||||
void perror(const char *);
|
void perror(const char *);
|
||||||
|
|
||||||
|
|
@ -131,7 +132,7 @@ int fileno(FILE *);
|
||||||
int fseeko(FILE *, off_t, int);
|
int fseeko(FILE *, off_t, int);
|
||||||
off_t ftello(FILE *);
|
off_t ftello(FILE *);
|
||||||
int dprintf(int, const char *__restrict, ...);
|
int dprintf(int, const char *__restrict, ...);
|
||||||
int vdprintf(int, const char *__restrict, va_list);
|
int vdprintf(int, const char *__restrict, __isoc_va_list);
|
||||||
void flockfile(FILE *);
|
void flockfile(FILE *);
|
||||||
int ftrylockfile(FILE *);
|
int ftrylockfile(FILE *);
|
||||||
void funlockfile(FILE *);
|
void funlockfile(FILE *);
|
||||||
|
|
@ -171,7 +172,7 @@ int getw(FILE *);
|
||||||
int putw(int, FILE *);
|
int putw(int, FILE *);
|
||||||
char *fgetln(FILE *, size_t *);
|
char *fgetln(FILE *, size_t *);
|
||||||
int asprintf(char **, const char *, ...);
|
int asprintf(char **, const char *, ...);
|
||||||
int vasprintf(char **, const char *, va_list);
|
int vasprintf(char **, const char *, __isoc_va_list);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _GNU_SOURCE
|
#ifdef _GNU_SOURCE
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ extern "C" {
|
||||||
#include <features.h>
|
#include <features.h>
|
||||||
|
|
||||||
#define __NEED_FILE
|
#define __NEED_FILE
|
||||||
#define __NEED_va_list
|
#define __NEED___isoc_va_list
|
||||||
#define __NEED_size_t
|
#define __NEED_size_t
|
||||||
#define __NEED_wchar_t
|
#define __NEED_wchar_t
|
||||||
#define __NEED_wint_t
|
#define __NEED_wint_t
|
||||||
|
|
@ -16,6 +16,7 @@ extern "C" {
|
||||||
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
|
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
|
||||||
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)
|
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)
|
||||||
#define __NEED_locale_t
|
#define __NEED_locale_t
|
||||||
|
#define __NEED_va_list
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)
|
#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)
|
||||||
|
|
@ -105,17 +106,17 @@ int wprintf (const wchar_t *__restrict, ...);
|
||||||
int fwprintf (FILE *__restrict, const wchar_t *__restrict, ...);
|
int fwprintf (FILE *__restrict, const wchar_t *__restrict, ...);
|
||||||
int swprintf (wchar_t *__restrict, size_t, const wchar_t *__restrict, ...);
|
int swprintf (wchar_t *__restrict, size_t, const wchar_t *__restrict, ...);
|
||||||
|
|
||||||
int vwprintf (const wchar_t *__restrict, va_list);
|
int vwprintf (const wchar_t *__restrict, __isoc_va_list);
|
||||||
int vfwprintf (FILE *__restrict, const wchar_t *__restrict, va_list);
|
int vfwprintf (FILE *__restrict, const wchar_t *__restrict, __isoc_va_list);
|
||||||
int vswprintf (wchar_t *__restrict, size_t, const wchar_t *__restrict, va_list);
|
int vswprintf (wchar_t *__restrict, size_t, const wchar_t *__restrict, __isoc_va_list);
|
||||||
|
|
||||||
int wscanf (const wchar_t *__restrict, ...);
|
int wscanf (const wchar_t *__restrict, ...);
|
||||||
int fwscanf (FILE *__restrict, const wchar_t *__restrict, ...);
|
int fwscanf (FILE *__restrict, const wchar_t *__restrict, ...);
|
||||||
int swscanf (const wchar_t *__restrict, const wchar_t *__restrict, ...);
|
int swscanf (const wchar_t *__restrict, const wchar_t *__restrict, ...);
|
||||||
|
|
||||||
int vwscanf (const wchar_t *__restrict, va_list);
|
int vwscanf (const wchar_t *__restrict, __isoc_va_list);
|
||||||
int vfwscanf (FILE *__restrict, const wchar_t *__restrict, va_list);
|
int vfwscanf (FILE *__restrict, const wchar_t *__restrict, __isoc_va_list);
|
||||||
int vswscanf (const wchar_t *__restrict, const wchar_t *__restrict, va_list);
|
int vswscanf (const wchar_t *__restrict, const wchar_t *__restrict, __isoc_va_list);
|
||||||
|
|
||||||
wint_t fgetwc (FILE *);
|
wint_t fgetwc (FILE *);
|
||||||
wint_t getwc (FILE *);
|
wint_t getwc (FILE *);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue