Re: [PATCH 6/7] Include wchar.h and wctype.h unconditionally

Pedro Alves
2014-11-21T12:49:07Z

On 11/15/2014 01:20 PM, Yao Qi wrote:
> As gnulib modules wchar and wctype is imported, we can include wchar.h
> and wctype.h unconditionally. This patch is also to remove HAVE_WCHAR_H
> check.
>

> gdb:
>
> 2014-11-15 Yao Qi <yao@codesourcery.com>
>
> * gdb_wchar.h: Include wchar.h and wctype.h.
> [HAVE_ICONV && HAVE_BTOWC]: Don't check HAVE_WCHAR_T and don't
> include wchar.h and wctype.h.
> Don't check HAVE_WCHAR_H.
> ---
> gdb/gdb_wchar.h | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/gdb/gdb_wchar.h b/gdb/gdb_wchar.h
> index f88673b..c7a0f1e 100644
> --- a/gdb/gdb_wchar.h
> +++ b/gdb/gdb_wchar.h
> @@ -49,18 +49,18 @@
> #define PHONY_ICONV
> #endif
>
> +#include <wchar.h>
> +#include <wctype.h>
> +
> /* We use "btowc" as a sentinel to detect functioning wchar_t support.
> We check for either __STDC_ISO_10646__ or a new-enough libiconv in
> order to ensure we can convert to and from wchar_t. We choose
> libiconv version 0x108 because it is the first version with
> iconvlist. */
> -#if defined (HAVE_ICONV) && defined (HAVE_WCHAR_H) && defined (HAVE_BTOWC) \
> +#if defined (HAVE_ICONV) && defined (HAVE_BTOWC) \
> && (defined (__STDC_ISO_10646__) \
> || (defined (_LIBICONV_VERSION) && _LIBICONV_VERSION >= 0x108))
>
> -#include <wchar.h>
> -#include <wctype.h>
> -
> typedef wchar_t gdb_wchar_t;
> typedef wint_t gdb_wint_t;
>
> @@ -94,7 +94,7 @@ const char *intermediate_encoding (void);
>
> /* If we got here and have wchar_t support, we might be on a system
> with some problem. So, we just disable everything. */
> -#if defined (HAVE_WCHAR_H) && defined (HAVE_BTOWC)
> +#if defined (HAVE_BTOWC)
> #define PHONY_ICONV
> #endif

It's hard to reason about all the modes supported here, but
I think this is OK. Seems like the comment above about wchar_t
support should be updated though.

(I wonder whether if we pulled in the gnulib btowc module, we could
get rid of at least some of this fallback stuff. We're already
pulling in mbrtowc...)

Thanks,
Pedro Alves