]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/strconv.cpp
Fix for when Set is called with wxSameAs to behave just like calling SameAs()
[wxWidgets.git] / src / common / strconv.cpp
index 41e50679a59771c8da6f33c5fd791546aae1cf42..2663a564f6d6103268cb77ace0710bb09016fff1 100644 (file)
@@ -600,10 +600,11 @@ private:
 
     // true if the wide char encoding we use (i.e. ms_wcCharsetName) has
     // different endian-ness than the native one
-    static bool ms_wcNeedsSwap = FALSE;
+    static bool ms_wcNeedsSwap;
 };
 
 const char *IC_CharSet::ms_wcCharsetName = NULL;
+bool IC_CharSet::ms_wcNeedsSwap = FALSE;
 
 IC_CharSet::IC_CharSet(const wxChar *name)
           : wxCharacterSet(name)
@@ -663,7 +664,11 @@ IC_CharSet::IC_CharSet(const wxChar *name)
             else
             {
                 ms_wcCharsetName = NULL;
-                wxLogError(_("Impossible to convert to/from charset '%s'."), name);
+                
+                // VS: we must not output an error here, since wxWindows will safely
+                //     fall back to using wxEncodingConverter.
+                wxLogTrace(wxT("strconv"), wxT("Impossible to convert to/from charset '%s' with iconv, falling back to wxEncodingConverter."), name);
+                //wxLogError(
             }
         }
         wxLogTrace(wxT("strconv"), wxT("wchar_t charset is '%s', needs swap: %i"), ms_wcCharsetName, ms_wcNeedsSwap);
@@ -678,6 +683,10 @@ IC_CharSet::IC_CharSet(const wxChar *name)
     {
         w2m = iconv_open(wxConvLibc.cWX2MB(name), ms_wcCharsetName);
     }
+    else
+    {
+        w2m = (iconv_t)-1;
+    }
 }
 
 IC_CharSet::~IC_CharSet()
@@ -1031,61 +1040,6 @@ size_t wxCSConv::WC2MB(char *buf, const wchar_t *psz, size_t n) const
     return len;
 }
 
-// VZ: are the classes below used at all??
-#if 0
-
-#ifdef HAVE_ICONV_H
-
-class IC_CharSetConverter
-{
-public:
-    IC_CharSetConverter(IC_CharSet *from, IC_CharSet *to)
-    {
-        cnv = iconv_open(wxConvLibc.cWX2MB(to->cname),
-                         wxConvLibc.cWX2MB(from->cname));
-    }
-
-    ~IC_CharSetConverter()
-    {
-        if (cnv != (iconv_t)-1)
-            iconv_close(cnv);
-    }
-
-    size_t Convert(char *buf, const char *psz, size_t n)
-    {
-        size_t inbuf = strlen(psz);
-        size_t outbuf = n;
-        size_t res = iconv( cnv, ICONV_CHAR_CAST(&psz), &inbuf, &buf, &outbuf );
-        if (res == (size_t)-1)
-            return (size_t)-1;
-        return (n - outbuf);
-    }
-
-public:
-    iconv_t cnv;
-};
-
-#endif // HAVE_ICONV_H
-
-class EC_CharSetConverter
-{
-public:
-    EC_CharSetConverter(EC_CharSet* from,EC_CharSet* to)
-        { cnv.Init(from->enc,to->enc); }
-
-    size_t Convert(char* buf, const char* psz, size_t n)
-    {
-        size_t inbuf = strlen(psz);
-        if (buf) cnv.Convert(psz,buf);
-        return inbuf;
-    }
-
-public:
-    wxEncodingConverter cnv;
-};
-
-#endif // 0
-
 #else // !wxUSE_WCHAR_T
 
 // ----------------------------------------------------------------------------