1 diff -ru boost.orig/boost/libs/locale/src/encoding/codepage.cpp boost/boost/libs/locale/src/encoding/codepage.cpp
2 --- foo/misc/boost.orig/libs/locale/src/encoding/codepage.cpp
3 +++ foo/misc/boost/libs/locale/src/boost/locale/encoding/codepage.cpp
5 const char* from_charset,
8 +#if defined(BOOST_LOCALE_WITH_ICONV) || defined(BOOST_LOCALE_WITH_ICU) || defined(BOOST_LOCALE_WITH_WCONV)
9 hold_ptr<converter_between> cvt;
10 #ifdef BOOST_LOCALE_WITH_ICONV
11 cvt.reset(new iconv_between());
13 if(cvt->open(to_charset, from_charset, how))
14 return cvt->convert(begin, end);
17 throw invalid_charset_error(std::string(to_charset) + " or " + from_charset);
21 template<typename CharType>
22 std::basic_string<CharType> convert_to(const char* begin, const char* end, const char* charset, method_type how)
24 +#if defined(BOOST_LOCALE_WITH_ICONV) || defined(BOOST_LOCALE_WITH_ICU) || defined(BOOST_LOCALE_WITH_WCONV)
25 hold_ptr<converter_to_utf<CharType>> cvt;
26 #ifdef BOOST_LOCALE_WITH_ICONV
27 cvt.reset(new iconv_to_utf<CharType>());
29 if(cvt->open(charset, how))
30 return cvt->convert(begin, end);
33 throw invalid_charset_error(charset);
37 template<typename CharType>
38 std::string convert_from(const CharType* begin, const CharType* end, const char* charset, method_type how)
40 +#if defined(BOOST_LOCALE_WITH_ICONV) || defined(BOOST_LOCALE_WITH_ICU) || defined(BOOST_LOCALE_WITH_WCONV)
41 hold_ptr<converter_from_utf<CharType>> cvt;
42 #ifdef BOOST_LOCALE_WITH_ICONV
43 cvt.reset(new iconv_from_utf<CharType>());
45 if(cvt->open(charset, how))
46 return cvt->convert(begin, end);
49 throw invalid_charset_error(charset);