version 0.3.33
[fms.git] / src / charsetconverter.cpp
index 97ba594..373f53d 100644 (file)
@@ -39,6 +39,7 @@ const bool CharsetConverter::SetConversion(const std::string &fromcharset, const
        {\r
                m_fromcharset="";\r
                m_tocharset="";\r
+               return false;\r
        }\r
 }\r
 \r
@@ -46,9 +47,14 @@ const bool CharsetConverter::Convert(const std::string &input, std::string &outp
 {\r
        if(m_iconv!=(iconv_t)-1)\r
        {\r
+               if(input.size()==0)\r
+               {\r
+                       return true;\r
+               }\r
+\r
                std::vector<char> invec(input.begin(),input.end());\r
                std::vector<char> outvec(invec.size()*4,0);\r
-#if defined(_WIN32) || defined(__APPLE__) || defined(__DARWIN__)\r
+#if defined(_WIN32) || defined(__FreeBSD__)//|| defined(__APPLE__) || defined(__DARWIN__)\r
                const char *inptr=&invec[0];\r
 #else\r
                char *inptr=&invec[0];\r
@@ -56,6 +62,7 @@ const bool CharsetConverter::Convert(const std::string &input, std::string &outp
                char *outptr=&outvec[0];\r
                size_t insize=invec.size();\r
                size_t outsize=outvec.size();\r
+\r
                size_t rval=0;\r
                \r
                rval=iconv(m_iconv,&inptr,&insize,&outptr,&outsize);\r
@@ -65,6 +72,7 @@ const bool CharsetConverter::Convert(const std::string &input, std::string &outp
                        outvec.resize(outptr-&outvec[0]);\r
                        output="";\r
                        output.append(outvec.begin(),outvec.end());\r
+                       return true;\r
                }\r
                else\r
                {\r