diff options
author | Zack Weinberg <zackw@panix.com> | 2016-11-20 23:00:02 -0500 |
---|---|---|
committer | Zack Weinberg <zackw@panix.com> | 2017-06-08 13:58:17 -0400 |
commit | 199fc19d3aaaf57944ef036e15904febe877fc93 (patch) | |
tree | 5056d2447de58c0bb197d87740098220f556b242 /include | |
parent | 4615f5aefeaa45345484a9ce8e3d0ea977c80d80 (diff) | |
download | glibc-199fc19d3aaaf57944ef036e15904febe877fc93.tar.gz |
Remove __need macros from stdio.h and wchar.h.
wint_t is a little finicky because it might be defined by stddef.h, which
belongs to the compiler.
In addition to the _types_, a bunch of other declarations shared between
wctype.h and wchar.h are factored out to their own header.
* libio/bits/types/FILE.h, libio/bits/types/__FILE.h
* wcsmbs/bits/types/mbstate_t.h, wcsmbs/bits/types/__mbstate_t.h
* wcsmbs/bits/types/wint_t.h: New single-type definition files.
* wctype/bits/wctype-wchar.h: New file holding declarations shared
between wctype.h and wchar.h.
* libio/Makefile, wcsmbs/Makefile, wctype/Makefile:
Install them.
* include/bits/types/FILE.h, include/bits/types/__FILE.h
* include/bits/types/mbstate_t.h, include/bits/types/__mbstate_t.h
* include/bits/types/wint_t.h, include/bits/wcsmbs-wchar.h:
New wrappers.
* include/stdio.h, include/wchar.h, include/wctype.h:
No need to handle __need macros.
* grp/grp.h, gshadow/gshadow.h, hurd/hurd.h, iconv/gconv.h
* libio/stdio.h, mach/mach.h, misc/mntent.h, pwd/pwd.h
* shadow/shadow.h, stdio-common/printf.h, wcsmbs/uchar.h
* wcsmbs/wchar.h, wctype/wctype.h
* sysdeps/generic/_G_config.h, sysdeps/unix/sysv/linux/_G_config.h
Use the new files instead of __need macros.
Diffstat (limited to 'include')
-rw-r--r-- | include/bits/types/FILE.h | 1 | ||||
-rw-r--r-- | include/bits/types/__FILE.h | 1 | ||||
-rw-r--r-- | include/bits/types/__mbstate_t.h | 1 | ||||
-rw-r--r-- | include/bits/types/mbstate_t.h | 1 | ||||
-rw-r--r-- | include/bits/types/wint_t.h | 1 | ||||
-rw-r--r-- | include/bits/wctype-wchar.h | 1 | ||||
-rw-r--r-- | include/stdio.h | 16 | ||||
-rw-r--r-- | include/wchar.h | 10 | ||||
-rw-r--r-- | include/wctype.h | 29 |
9 files changed, 15 insertions, 46 deletions
diff --git a/include/bits/types/FILE.h b/include/bits/types/FILE.h new file mode 100644 index 0000000000..09b599baa0 --- /dev/null +++ b/include/bits/types/FILE.h @@ -0,0 +1 @@ +#include <libio/bits/types/FILE.h> diff --git a/include/bits/types/__FILE.h b/include/bits/types/__FILE.h new file mode 100644 index 0000000000..236f60bacd --- /dev/null +++ b/include/bits/types/__FILE.h @@ -0,0 +1 @@ +#include <libio/bits/types/__FILE.h> diff --git a/include/bits/types/__mbstate_t.h b/include/bits/types/__mbstate_t.h new file mode 100644 index 0000000000..13e764e8c9 --- /dev/null +++ b/include/bits/types/__mbstate_t.h @@ -0,0 +1 @@ +#include <wcsmbs/bits/types/__mbstate_t.h> diff --git a/include/bits/types/mbstate_t.h b/include/bits/types/mbstate_t.h new file mode 100644 index 0000000000..99ec08a91a --- /dev/null +++ b/include/bits/types/mbstate_t.h @@ -0,0 +1 @@ +#include <wcsmbs/bits/types/mbstate_t.h> diff --git a/include/bits/types/wint_t.h b/include/bits/types/wint_t.h new file mode 100644 index 0000000000..f1e373d294 --- /dev/null +++ b/include/bits/types/wint_t.h @@ -0,0 +1 @@ +#include <wcsmbs/bits/types/wint_t.h> diff --git a/include/bits/wctype-wchar.h b/include/bits/wctype-wchar.h new file mode 100644 index 0000000000..8273cd743e --- /dev/null +++ b/include/bits/wctype-wchar.h @@ -0,0 +1 @@ +#include <wctype/bits/wctype-wchar.h> diff --git a/include/stdio.h b/include/stdio.h index ed6593ba50..f68f633bd6 100644 --- a/include/stdio.h +++ b/include/stdio.h @@ -1,8 +1,6 @@ #ifndef _STDIO_H -# if defined _ISOMAC || defined __need_FILE || defined __need___FILE -# include <libio/stdio.h> -# else -# include <libio/stdio.h> +# include <libio/stdio.h> +# ifndef _ISOMAC /* Now define the internal interfaces. */ @@ -71,11 +69,11 @@ libc_hidden_proto (__isoc99_vfscanf) extern FILE *__new_tmpfile (void); extern FILE *__old_tmpfile (void); - - # define __need_size_t -# define __need_wint_t # include <stddef.h> + +# include <bits/types/wint_t.h> + /* Generate a unique file name (and possibly open it). */ extern int __path_search (char *__tmpl, size_t __tmpl_len, const char *__dir, const char *__pfx, @@ -183,5 +181,5 @@ libc_hidden_proto (__obstack_vprintf_chk) extern FILE * __fmemopen (void *buf, size_t len, const char *mode); libc_hidden_proto (__fmemopen) -# endif -#endif +# endif /* not _ISOMAC */ +#endif /* stdio.h */ diff --git a/include/wchar.h b/include/wchar.h index a773d56b36..cf76709901 100644 --- a/include/wchar.h +++ b/include/wchar.h @@ -1,8 +1,6 @@ #ifndef _WCHAR_H -#include <wcsmbs/wchar.h> - +# include <wcsmbs/wchar.h> # ifndef _ISOMAC -# ifdef _WCHAR_H extern __typeof (wcscasecmp_l) __wcscasecmp_l; extern __typeof (wcsncasecmp_l) __wcsncasecmp_l; @@ -219,10 +217,4 @@ extern size_t __mbsrtowcs_l (wchar_t *dst, const char **src, size_t len, # define __mbsinit(state) ((state)->__count == 0) # endif -# endif #endif - -/* Undefine all __need_* constants in case we are included to get those - constants but the whole file was already read. */ -#undef __need_mbstate_t -#undef __need_wint_t diff --git a/include/wctype.h b/include/wctype.h index a71b10377b..5fd3f863ae 100644 --- a/include/wctype.h +++ b/include/wctype.h @@ -1,30 +1,7 @@ #ifndef _WCTYPE_H +#include <wctype/wctype.h> #ifndef _ISOMAC -/* We try to get wint_t from <stddef.h>, but not all GCC versions define it - there. So define it ourselves if it remains undefined. */ -# define __need_wint_t -# include <stddef.h> -# ifndef _WINT_T -/* Integral type unchanged by default argument promotions that can - hold any value corresponding to members of the extended character - set, as well as at least one value that does not correspond to any - member of the extended character set. */ -# define _WINT_T -typedef unsigned int wint_t; -# endif - -/* Need to repeat these prototypes here, as wctype/wctype.h defines all - these as macros and thus we couldn't add libc_hidden_proto. */ - -extern int iswalpha (wint_t __wc); -extern int iswalnum (wint_t __wc); -extern int iswdigit (wint_t __wc); -extern int iswlower (wint_t __wc); -extern int iswspace (wint_t __wc); -extern int iswxdigit (wint_t __wc); -extern wint_t towlower (wint_t __wc); -extern wint_t towupper (wint_t __wc); libc_hidden_proto (iswalpha) libc_hidden_proto (iswalnum) @@ -34,11 +11,7 @@ libc_hidden_proto (iswspace) libc_hidden_proto (iswxdigit) libc_hidden_proto (towlower) libc_hidden_proto (towupper) -#endif - -#include <wctype/wctype.h> -#ifndef _ISOMAC /* Internal interfaces. */ extern int __iswspace (wint_t __wc); extern int __iswctype (wint_t __wc, wctype_t __desc); |