| Fix build when iconv support is not available |
| |
| When iconv support is not available, the apr-util library does not |
| provide character set conversion features, and therefore APR_HAS_XLATE |
| is false. |
| |
| However, on Linux !defined(_WIN32) is always true, but the part of the |
| code that defines the APRCharsetDecoder and APRCharsetEncoder are only |
| enclosed in a #if APR_HAS_XLATE, without the "|| defined(_WIN32)" |
| which leads to build failures: the APRCharsetEncoder and |
| APRCharsetDecoder classes are used without being defined. |
| |
| This patch removes the || !defined(_WIN32) so that when iconv support |
| is not here, we fall back to raising an exception at runtime. |
| |
| Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> |
| |
| Index: b/src/main/cpp/charsetdecoder.cpp |
| =================================================================== |
| --- a/src/main/cpp/charsetdecoder.cpp |
| +++ b/src/main/cpp/charsetdecoder.cpp |
| @@ -476,7 +476,7 @@ |
| StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO-LATIN-1"), LOG4CXX_STR("iso-latin-1"))) { |
| return new ISOLatinCharsetDecoder(); |
| } |
| -#if APR_HAS_XLATE || !defined(_WIN32) |
| +#if APR_HAS_XLATE |
| return new APRCharsetDecoder(charset); |
| #else |
| throw IllegalArgumentException(charset); |
| Index: b/src/main/cpp/charsetencoder.cpp |
| =================================================================== |
| --- a/src/main/cpp/charsetencoder.cpp |
| +++ b/src/main/cpp/charsetencoder.cpp |
| @@ -484,7 +484,7 @@ |
| } else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF-16LE"), LOG4CXX_STR("utf-16le"))) { |
| return new UTF16LECharsetEncoder(); |
| } |
| -#if APR_HAS_XLATE || !defined(_WIN32) |
| +#if APR_HAS_XLATE |
| return new APRCharsetEncoder(charset); |
| #else |
| throw IllegalArgumentException(charset); |