Force ISO-8859-8 for Hebrew users
authorRémi Denis-Courmont <rem@videolan.org>
Mon, 19 Nov 2007 21:32:46 +0000 (21:32 +0000)
committerRémi Denis-Courmont <rem@videolan.org>
Mon, 19 Nov 2007 21:32:46 +0000 (21:32 +0000)
src/text/wincp.c

index 318b5e6..fe82f4a 100644 (file)
@@ -97,7 +97,7 @@ static const char *FindFallbackEncoding (const char *locale)
 
     /* Hebrew (ISO-8859-8) */
     if (!locale_match ("he" "iw" "yi", locale))
-        return "CP1255"; // Compatible Microsoft superset
+        return "ISO-8859-8"; // CP1255 is reportedly screwed up
 
     /* Latin-5 Turkish (ISO-8859-9) */
     if (!locale_match ("tr" "ku", locale))
@@ -204,8 +204,20 @@ const char *GetFallbackEncoding( void )
     return FindFallbackEncoding (psz_lang);
 #else
     static char buf[16] = "";
+
     if (buf[0] == 0)
-        snprintf (buf, sizeof (buf), "CP%u", GetACP ());
+    {
+        int cp = GetACP ();
+
+        switch (cp)
+        {
+            case 1255: // Hebrew, CP1255 screws up somewhat
+                strcpy (buf, "ISO-8859-8");
+                break;
+            default:
+                snprintf (buf, sizeof (buf), "CP%u", GetACP ());
+        }
+    }
     return buf;
 #endif
 }