| /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying | |
| file Copyright.txt or https://cmake.org/licensing#kwsys for details. */ | |
| #ifndef @KWSYS_NAMESPACE@_Encoding_h | |
| #define @KWSYS_NAMESPACE@_Encoding_h | |
| #include <@KWSYS_NAMESPACE@/Configure.h> | |
| #include <wchar.h> | |
| /* Redefine all public interface symbol names to be in the proper | |
| namespace. These macros are used internally to kwsys only, and are | |
| not visible to user code. Use kwsysHeaderDump.pl to reproduce | |
| these macros after making changes to the interface. */ | |
| #if !defined(KWSYS_NAMESPACE) | |
| # define kwsys_ns(x) @KWSYS_NAMESPACE@##x | |
| # define kwsysEXPORT @KWSYS_NAMESPACE@_EXPORT | |
| #endif | |
| #if !@KWSYS_NAMESPACE@_NAME_IS_KWSYS | |
| # define kwsysEncoding kwsys_ns(Encoding) | |
| # define kwsysEncoding_mbstowcs kwsys_ns(Encoding_mbstowcs) | |
| # define kwsysEncoding_DupToWide kwsys_ns(Encoding_DupToWide) | |
| # define kwsysEncoding_wcstombs kwsys_ns(Encoding_wcstombs) | |
| # define kwsysEncoding_DupToNarrow kwsys_ns(Encoding_DupToNarrow) | |
| #endif | |
| #if defined(__cplusplus) | |
| extern "C" { | |
| #endif | |
| /* Convert a narrow string to a wide string. | |
| On Windows, UTF-8 is assumed, and on other platforms, | |
| the current locale is assumed. | |
| */ | |
| kwsysEXPORT size_t kwsysEncoding_mbstowcs(wchar_t* dest, char const* src, | |
| size_t n); | |
| /* Convert a narrow string to a wide string. | |
| This can return NULL if the conversion fails. */ | |
| kwsysEXPORT wchar_t* kwsysEncoding_DupToWide(char const* src); | |
| /* Convert a wide string to a narrow string. | |
| On Windows, UTF-8 is assumed, and on other platforms, | |
| the current locale is assumed. */ | |
| kwsysEXPORT size_t kwsysEncoding_wcstombs(char* dest, wchar_t const* src, | |
| size_t n); | |
| /* Convert a wide string to a narrow string. | |
| This can return NULL if the conversion fails. */ | |
| kwsysEXPORT char* kwsysEncoding_DupToNarrow(wchar_t const* str); | |
| #if defined(__cplusplus) | |
| } /* extern "C" */ | |
| #endif | |
| /* If we are building a kwsys .c or .cxx file, let it use these macros. | |
| Otherwise, undefine them to keep the namespace clean. */ | |
| #if !defined(KWSYS_NAMESPACE) | |
| # undef kwsys_ns | |
| # undef kwsysEXPORT | |
| # if !defined(KWSYS_NAMESPACE) && !@KWSYS_NAMESPACE@_NAME_IS_KWSYS | |
| # undef kwsysEncoding | |
| # undef kwsysEncoding_mbstowcs | |
| # undef kwsysEncoding_DupToWide | |
| # undef kwsysEncoding_wcstombs | |
| # undef kwsysEncoding_DupToNarrow | |
| # endif | |
| #endif | |
| #endif |