static VALUE cg_s_guess(VALUE klass, VALUE str) { const char*ptr; int ret; Check_Type(str, T_STRING); ret = CharGuessInit(); ptr = GuessChardet((const char *)RSTRING(str)->ptr); ret = CharGuessDone(); return ptr ? rb_str_new2(ptr) : Qnil; }
extern "C" const char* GuessChardet(const char *str) { const char* tmp; if (!det) { CharGuessInit(); return NULL; } det->Reset(); det->HandleData(str, strlen(str)); det->DataEnd(); tmp = det->GetCharset(); return tmp; }