From e2a9aef742a70f2260dd38650126c5a66857023f Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Fri, 23 Apr 2021 18:52:55 +0200 Subject: Fix for crash due to wrong function prototype for portable_iconv_open --- src/configimpl.l | 2 +- src/htmlhelp.cpp | 2 +- src/portable.h | 2 +- src/util.cpp | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/configimpl.l b/src/configimpl.l index baf6480..fbaf3ae 100644 --- a/src/configimpl.l +++ b/src/configimpl.l @@ -554,7 +554,7 @@ static QCString configStringRecode( int inputSize=str.length(); int outputSize=inputSize*4+1; QCString output(outputSize); - void *cd = portable_iconv_open(outputEncoding,inputEncoding); + void *cd = portable_iconv_open(outputEncoding.data(),inputEncoding.data()); if (cd==(void *)(-1)) { config_term("Error: unsupported character conversion: '%s'->'%s'\n", diff --git a/src/htmlhelp.cpp b/src/htmlhelp.cpp index 1672b69..05553e1 100644 --- a/src/htmlhelp.cpp +++ b/src/htmlhelp.cpp @@ -51,7 +51,7 @@ class HtmlHelpRecoder { QCString str = Config_getString(CHM_INDEX_ENCODING); if (str.isEmpty()) str = "CP1250"; // use safe and likely default - m_fromUtf8 = portable_iconv_open(str,"UTF-8"); + m_fromUtf8 = portable_iconv_open(str.data(),"UTF-8"); if (m_fromUtf8==m_iconv_null) { term("unsupported character conversion for CHM_INDEX_ENCODING: '%s'->'UTF-8'\n", qPrint(str)); diff --git a/src/portable.h b/src/portable.h index bf4cb47..205f024 100644 --- a/src/portable.h +++ b/src/portable.h @@ -52,7 +52,7 @@ namespace Portable extern "C" { - void * portable_iconv_open(const QCString &tocode, const QCString &fromcode); + void * portable_iconv_open(const char *tocode, const char *fromcode); size_t portable_iconv (void *cd, char** inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft); int portable_iconv_close (void *cd); diff --git a/src/util.cpp b/src/util.cpp index d45144c..565cd9f 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -1389,7 +1389,7 @@ QCString transcodeCharacterStringToUTF8(const QCString &input) int inputSize=input.length(); int outputSize=inputSize*4+1; QCString output(outputSize); - void *cd = portable_iconv_open(outputEncoding,inputEncoding); + void *cd = portable_iconv_open(outputEncoding,inputEncoding.data()); if (cd==(void *)(-1)) { err("unsupported character conversion: '%s'->'%s'\n", @@ -6161,7 +6161,7 @@ static int transcodeCharacterBuffer(const QCString &fileName,BufStr &srcBuf,int { if (inputEncoding.isEmpty() || outputEncoding.isEmpty()) return size; if (qstricmp(inputEncoding,outputEncoding)==0) return size; - void *cd = portable_iconv_open(outputEncoding,inputEncoding); + void *cd = portable_iconv_open(outputEncoding.data(),inputEncoding.data()); if (cd==(void *)(-1)) { term("unsupported character conversion: '%s'->'%s': %s\n" -- cgit v0.12