diff audacious/util.c @ 1613:9becbe564217 trunk

[svn] - chardet patch for Russian language witten by Valentine Sinitsyn.
author yaz
date Sat, 02 Sep 2006 08:24:10 -0700
parents 705d4c089fce
children 6e477dd65024
line wrap: on
line diff
--- a/audacious/util.c	Wed Aug 30 06:14:33 2006 -0700
+++ b/audacious/util.c	Sat Sep 02 08:24:10 2006 -0700
@@ -58,6 +58,7 @@
 
 #ifdef USE_CHARDET
     #include "../libguess/libguess.h"
+    #include "../librcd/librcd.h"
 #ifdef HAVE_UDET
     #include <libudet_c.h>
 #endif
@@ -1469,6 +1470,24 @@
 			encoding = (char *)guess_kr(str, strlen(str));
 			if (!encoding)
 				goto fallback;
+		} else if(!strncasecmp("russian", det, sizeof("russian"))) {
+			rcd_russian_charset res = rcdGetRussianCharset(str, strlen(str));
+			switch(res) {
+			    case RUSSIAN_CHARSET_WIN:
+				encoding = "CP1251";
+			    break;
+			    case RUSSIAN_CHARSET_ALT:
+				encoding = "CP866";
+			    break;
+			    case RUSSIAN_CHARSET_KOI:
+				encoding = "KOI8-R";
+			    break;
+			    case RUSSIAN_CHARSET_UTF8:
+				encoding = "UTF-8";
+			    break;
+			}
+			if (!encoding)
+				goto fallback;
 #ifdef HAVE_UDET
 		} else if (!strncasecmp("universal", det, sizeof("universal"))) {
 			encoding = (char *)detectCharset((char *)str, strlen(str));