diff options
author | David Chisnall <theraven@FreeBSD.org> | 2013-09-06 09:46:44 +0000 |
---|---|---|
committer | David Chisnall <theraven@FreeBSD.org> | 2013-09-06 09:46:44 +0000 |
commit | b49c0d5878e49d8d3d094d0b2e4f00939e7aa662 (patch) | |
tree | f507ed7cb6b08b5b63fc242bc2de8c7e231b28ea | |
parent | 75b1cda430eedddf6559015ebdcc4bedd3a85c7c (diff) | |
download | src-b49c0d5878e49d8d3d094d0b2e4f00939e7aa662.tar.gz src-b49c0d5878e49d8d3d094d0b2e4f00939e7aa662.zip |
Fix the namespace pollution caused by iconv.h including stdbool.h
This broke any C89 ports that defined bool themselves, including things
like gcc, gtk, and so on.
Notes
Notes:
svn path=/head/; revision=255297
-rw-r--r-- | include/iconv.h | 10 | ||||
-rw-r--r-- | lib/libc/iconv/citrus_iconv_local.h | 1 | ||||
-rw-r--r-- | lib/libiconv_modules/Makefile | 3 |
3 files changed, 12 insertions, 2 deletions
diff --git a/include/iconv.h b/include/iconv.h index 3423a24d063b..69cc2c7d16a6 100644 --- a/include/iconv.h +++ b/include/iconv.h @@ -35,7 +35,6 @@ #include <sys/cdefs.h> #include <sys/types.h> -#include <stdbool.h> #include <wchar.h> #include <sys/cdefs.h> @@ -48,6 +47,13 @@ #define libiconv iconv #define libiconv_t iconv_t #endif +#ifdef __cplusplus +typedef bool __iconv_bool; +#elif __STDC_VERSION__ >= 199901L +typedef _Bool __iconv_bool; +#else +typedef int __iconv_bool; +#endif struct __tag_iconv_t; typedef struct __tag_iconv_t *iconv_t; @@ -61,7 +67,7 @@ int iconv_close(iconv_t); /* * non-portable interfaces for iconv */ -int __iconv_get_list(char ***, size_t *, bool); +int __iconv_get_list(char ***, size_t *, __iconv_bool); void __iconv_free_list(char **, size_t); size_t __iconv(iconv_t, const char **, size_t *, char **, size_t *, __uint32_t, size_t *); diff --git a/lib/libc/iconv/citrus_iconv_local.h b/lib/libc/iconv/citrus_iconv_local.h index 52ac8251cd24..e673c9a6afa1 100644 --- a/lib/libc/iconv/citrus_iconv_local.h +++ b/lib/libc/iconv/citrus_iconv_local.h @@ -31,6 +31,7 @@ #define _CITRUS_ICONV_LOCAL_H_ #include <iconv.h> +#include <stdbool.h> #define _CITRUS_ICONV_GETOPS_FUNC_BASE(_n_) \ int _n_(struct _citrus_iconv_ops *) diff --git a/lib/libiconv_modules/Makefile b/lib/libiconv_modules/Makefile index 1a7213612b8f..2bb09da72531 100644 --- a/lib/libiconv_modules/Makefile +++ b/lib/libiconv_modules/Makefile @@ -2,6 +2,9 @@ .include <bsd.own.mk> +CFLAGS+= -Dbool=_Bool +.export CFLAGS + SUBDIR= BIG5 DECHanyu EUC EUCTW GBK2K HZ ISO2022 JOHAB MSKanji UES UTF1632 \ UTF7 UTF8 VIQR ZW iconv_none iconv_std mapper_646 mapper_none \ mapper_parallel mapper_serial mapper_std mapper_zone |