diff arabic_impl.c @ 0:d9b6ff839eab

initial import
author Yoshiki Yazawa <yaz@cc.rim.or.jp>
date Fri, 30 Nov 2007 19:34:51 +0900
parents
children 754a4550c64e
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/arabic_impl.c	Fri Nov 30 19:34:51 2007 +0900
@@ -0,0 +1,28 @@
+#include "libguess.h"
+
+static const char *_guess_ar(const unsigned char *ptr, int size)
+{
+    int i;
+
+    for (i = 0; i < size; i++)
+    {
+        if ((ptr[i] >= 0x80 && ptr[i] <= 0x9F) ||
+            ptr[i] == 0xA1 || ptr[i] == 0xA2 || ptr[i] == 0xA3 ||
+            (ptr[i] >= 0xA5 && ptr[i] <= 0xAB) ||
+            (ptr[i] >= 0xAE && ptr[i] <= 0xBA) ||
+            ptr[i] == 0xBC || ptr[i] == 0xBD ||
+            ptr[i] == 0xBE || ptr[i] == 0xC0 ||
+            (ptr[i] >= 0xDB && ptr[i] <= 0xDF) || (ptr[i] >= 0xF3))
+            return "CP1256";
+    }
+
+    return "ISO-8859-6";
+}
+
+const char *guess_ar(const char *ptr, int size)
+{
+    if (dfa_validate_utf8(ptr, size))
+        return "UTF-8";
+
+    return _guess_ar((const unsigned char *)ptr, size);
+}