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.
This commit is contained in:
David Chisnall 2013-09-06 09:46:44 +00:00
parent 75b1cda430
commit b49c0d5878
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=255297
3 changed files with 12 additions and 2 deletions

View file

@ -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 *);

View file

@ -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 *)

View file

@ -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