X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fcharsetconverter.cpp;h=373f53dd1c69428c04ca8a03b979b82f21163661;hb=HEAD;hp=97ba59472dfe0d488439e51e6273d03094614afa;hpb=0574a75431d98ed64c5cc6291600bb3759b399a6;p=fms.git diff --git a/src/charsetconverter.cpp b/src/charsetconverter.cpp index 97ba594..373f53d 100644 --- a/src/charsetconverter.cpp +++ b/src/charsetconverter.cpp @@ -39,6 +39,7 @@ const bool CharsetConverter::SetConversion(const std::string &fromcharset, const { m_fromcharset=""; m_tocharset=""; + return false; } } @@ -46,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]; @@ -56,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); @@ -65,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 {