This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH 6/7] Include wchar.h and wctype.h unconditionally
- From: Pedro Alves <palves at redhat dot com>
- To: Yao Qi <yao at codesourcery dot com>, gdb-patches at sourceware dot org
- Date: Fri, 21 Nov 2014 12:48:58 +0000
- Subject: Re: [PATCH 6/7] Include wchar.h and wctype.h unconditionally
- Authentication-results: sourceware.org; auth=none
- References: <1416057612-16155-1-git-send-email-yao at codesourcery dot com> <1416057612-16155-7-git-send-email-yao at codesourcery dot com>
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