X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fcharsetconverter.cpp;h=373f53dd1c69428c04ca8a03b979b82f21163661;hb=56f67ecca96efc7b72d03c95c8c42cfb66e31468;hp=4685adde2537c3e87b5341ca64fbc474f85dfe43;hpb=9a14c0d9f7f7c319e539583b93664953764e83b7;p=fms.git diff --git a/src/charsetconverter.cpp b/src/charsetconverter.cpp index 4685add..373f53d 100644 --- a/src/charsetconverter.cpp +++ b/src/charsetconverter.cpp @@ -47,9 +47,14 @@ const bool CharsetConverter::Convert(const std::string &input, std::string &outp { if(m_iconv!=(iconv_t)-1) { + if(input.size()==0) + { + return true; + } + std::vector invec(input.begin(),input.end()); std::vector outvec(invec.size()*4,0); -#if defined(_WIN32) || defined(__APPLE__) || defined(__DARWIN__) +#if defined(_WIN32) || defined(__FreeBSD__)//|| defined(__APPLE__) || defined(__DARWIN__) const char *inptr=&invec[0]; #else char *inptr=&invec[0]; @@ -57,6 +62,7 @@ const bool CharsetConverter::Convert(const std::string &input, std::string &outp char *outptr=&outvec[0]; size_t insize=invec.size(); size_t outsize=outvec.size(); + size_t rval=0; rval=iconv(m_iconv,&inptr,&insize,&outptr,&outsize); @@ -66,6 +72,7 @@ const bool CharsetConverter::Convert(const std::string &input, std::string &outp outvec.resize(outptr-&outvec[0]); output=""; output.append(outvec.begin(),outvec.end()); + return true; } else {