44 lines
1.7 KiB
Diff
44 lines
1.7 KiB
Diff
|
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);
|