]> git.saurik.com Git - wxWidgets.git/commitdiff
now grabs encoding info not from but from '' (empty string) -- default po header...
authorVáclav Slavík <vslavik@fastmail.fm>
Mon, 3 Jan 2000 14:27:24 +0000 (14:27 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Mon, 3 Jan 2000 14:27:24 +0000 (14:27 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5200 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/common/intl.cpp

index e21fc7abe3d7fabb587bed2124ce0dc81eb46d6b..b34f248d27625475d8b55aec194914d8e5945d7e 100644 (file)
@@ -475,9 +475,20 @@ void wxMsgCatalog::ConvertEncoding()
     wxFontEncoding enc;
 
     // first, find encoding header:
-    const char *hdr = GetString("$ENCODING");   
-    if (hdr == NULL) return; // not supported by this catalog
-    if ((enc = wxTheFontMapper -> CharsetToEncoding(hdr, FALSE)) == wxFONTENCODING_SYSTEM) return;
+    const char *hdr = StringAtOfs(m_pOrigTable, 0);
+    if (hdr == NULL) return; // not supported by this catalog, does not have non-fuzzy header
+    if (hdr[0] != 0) return; // ditto
+    
+    /* we support catalogs with header (msgid "") that is _not_ marked as "#, fuzzy" (otherwise
+       the string would not be included into compiled catalog) */
+    wxString header(StringAtOfs(m_pTransTable, 0));
+    wxString charset;
+    int pos = header.Find("Content-Type: text/plain; charset=");
+    if (pos == -1) return; // incorrectly filled Content-Type header
+    pos += 34 ; /*strlen("Content-Type: text/plain; charset=")*/
+    while (header[pos] != '\n') charset << header[pos++];
+    
+    if ((enc = wxTheFontMapper -> CharsetToEncoding(charset, FALSE)) == wxFONTENCODING_SYSTEM) return;
 
     wxFontEncodingArray a = wxEncodingConverter::GetPlatformEquivalents(enc);
     if (a[0] == enc) return; // no conversion needed, locale uses native encoding