Mercurial > libguess
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); +}