From c04dfb0b1932e7a84103ade5ccddab95eb4d5a28 Mon Sep 17 00:00:00 2001 From: theraven Date: Fri, 6 Sep 2013 09:46:44 +0000 Subject: 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. --- include/iconv.h | 10 ++++++++-- lib/libc/iconv/citrus_iconv_local.h | 1 + lib/libiconv_modules/Makefile | 3 +++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/include/iconv.h b/include/iconv.h index 3423a24..69cc2c7 100644 --- a/include/iconv.h +++ b/include/iconv.h @@ -35,7 +35,6 @@ #include #include -#include #include #include @@ -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 52ac825..e673c9a 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 +#include #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 1a72136..2bb09da 100644 --- a/lib/libiconv_modules/Makefile +++ b/lib/libiconv_modules/Makefile @@ -2,6 +2,9 @@ .include +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 -- cgit v1.1