* gdb_wchar.h (USE_INTERMEDIATE_ENCODING_FUNCTION): New macro.

(INTERMEDIATE_ENCODING): Change value to intermediate_encoding
	function call if __STDC_ISO_10646__ macro is defined.
	(intermediate_encoding): New prototype.
	* charset.c (your_gdb_wchar_t_is_bogus): New extern test variable
	to generate compile time error for unsupported gdb_wchar_t size.
	(ENDIAN_SUFFIX): New macro.
	(intermediate_encoding): New function.
This commit is contained in:
Pierre Muller 2011-04-21 14:26:38 +00:00
parent 9165b2bff2
commit bcb28afc53
3 changed files with 81 additions and 5 deletions

View file

@ -78,11 +78,10 @@ typedef wint_t gdb_wint_t;
iconv_open. We put the endianness into the encoding name to avoid
hosts that emit a BOM when the unadorned name is used. */
#if defined (__STDC_ISO_10646__)
#if WORDS_BIGENDIAN
#define INTERMEDIATE_ENCODING "UCS-4BE"
#else
#define INTERMEDIATE_ENCODING "UCS-4LE"
#endif
#define USE_INTERMEDIATE_ENCODING_FUNCTION
#define INTERMEDIATE_ENCODING intermediate_encoding ()
const char *intermediate_encoding (void);
#elif defined (_LIBICONV_VERSION) && _LIBICONV_VERSION >= 0x108
#define INTERMEDIATE_ENCODING "wchar_t"
#else