summaryrefslogtreecommitdiff
path: root/src/utils/encoding.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils/encoding.cpp')
-rw-r--r--src/utils/encoding.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/utils/encoding.cpp b/src/utils/encoding.cpp
index a1bc01b..2a6aecb 100644
--- a/src/utils/encoding.cpp
+++ b/src/utils/encoding.cpp
@@ -75,10 +75,15 @@ namespace utils
// Make sure cd is always closed when we leave this function
ScopeGuard sg([&]{ iconv_close(cd); });
- // iconv will not attempt to modify this buffer, but it still requires
- // a char**.
size_t inbytesleft = str.size();
+
+ // iconv will not attempt to modify this buffer, but some plateform
+ // require a char** anyway
+#ifdef ICONV_SECOND_ARGUMENT_IS_CONST
+ const char* inbuf_ptr = str.c_str();
+#else
char* inbuf_ptr = const_cast<char*>(str.c_str());
+#endif
size_t outbytesleft = str.size() * 4;
char* outbuf = new char[outbytesleft];