+/* If __STDC_ISO_10646__ is defined, then the host wchar_t is UCS-4.
+ We exploit this fact in the hope that there are hosts that define
+ this but which do not support "wchar_t" as an encoding argument to
+ 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__)
+#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"