fix: change the find order in PyCodec.
- now PyCodec will try to use Iconv first. - re-claim the meaning of YYCC_FEAT_ICONV macro.
This commit is contained in:
		@ -1,6 +1,6 @@
 | 
			
		||||
#include "iconv.hpp"
 | 
			
		||||
 | 
			
		||||
#if YYCC_FEAT_ICONV || !defined(YYCC_OS_WINDOWS)
 | 
			
		||||
#if defined(YYCC_FEAT_ICONV)
 | 
			
		||||
 | 
			
		||||
#include "../macro/endian_detector.hpp"
 | 
			
		||||
#include <cerrno>
 | 
			
		||||
 | 
			
		||||
@ -48,7 +48,7 @@ namespace yycc::encoding::iconv {
 | 
			
		||||
    template<typename T>
 | 
			
		||||
    using ConvResult = std::expected<T, ConvError>;
 | 
			
		||||
 | 
			
		||||
#if YYCC_FEAT_ICONV || !defined(YYCC_OS_WINDOWS)
 | 
			
		||||
#if defined(YYCC_FEAT_ICONV)
 | 
			
		||||
 | 
			
		||||
    /// @brief Char -> UTF8
 | 
			
		||||
    class CharToUtf8 {
 | 
			
		||||
 | 
			
		||||
@ -7,15 +7,18 @@
 | 
			
		||||
#include <expected>
 | 
			
		||||
 | 
			
		||||
// Choose the backend of PyCodec module
 | 
			
		||||
#if defined(YYCC_OS_WINDOWS) && defined(YYCC_STL_MSSTL)
 | 
			
		||||
#include "windows.hpp"
 | 
			
		||||
#define YYCC_PYCODEC_WIN32_BACKEND
 | 
			
		||||
#define YYCC_PYCODEC_BACKEND_NS ::yycc::encoding::windows
 | 
			
		||||
#elif YYCC_FEAT_ICONV || !defined(YYCC_OS_WINDOWS)
 | 
			
		||||
#if defined(YYCC_FEAT_ICONV)
 | 
			
		||||
// We try Iconv first in any cases.
 | 
			
		||||
#include "iconv.hpp"
 | 
			
		||||
#define YYCC_PYCODEC_ICONV_BACKEND
 | 
			
		||||
#define YYCC_PYCODEC_BACKEND_NS ::yycc::encoding::iconv
 | 
			
		||||
#elif defined(YYCC_OS_WINDOWS) && defined(YYCC_STL_MSSTL)
 | 
			
		||||
// If we can not use Iconv, we try to fallback to Windows implementation.
 | 
			
		||||
#include "windows.hpp"
 | 
			
		||||
#define YYCC_PYCODEC_WIN32_BACKEND
 | 
			
		||||
#define YYCC_PYCODEC_BACKEND_NS ::yycc::encoding::windows
 | 
			
		||||
#else
 | 
			
		||||
// No viable implementation.
 | 
			
		||||
#error "Can not find viable encoding convertion solution in current environment for PyCodec module."
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user