Ejemplo n.º 1
0
static int lStrlen (lua_State* L) {
int len=0;
const char* str = luaL_checklstring(L,1,&len);
int enc = luaL_optint(L,2,-1);
if (enc<0) enc = guessEncoding(str);

}
Ejemplo n.º 2
0
void test_guess_encoding() {
  char* buffer = "an ascii text";
  gchar* guessedEncoding = guessEncoding(buffer, strlen(buffer));

#ifdef HAVE_CHARDET
  CU_ASSERT_PTR_NULL(guessedEncoding);
#else
  CU_ASSERT_PTR_NOT_NULL_FATAL(guessedEncoding);
  FO_ASSERT_STRING_EQUAL(guessedEncoding, "us-ascii");
#endif

  if (guessedEncoding) {
    g_free(guessedEncoding);
  }
}
Ejemplo n.º 3
0
iconv_t guessConverter(const char* buffer, size_t len)
{
  char* const target = "utf-8";

  iconv_t iconvCookie = NULL;

  gchar* encoding = guessEncoding(buffer, len);
  if (encoding && (strcmp(encoding, target) != 0))
  {
    iconvCookie = iconv_open(target, encoding);
    g_free(encoding);
  }

  return iconvCookie;
}
Ejemplo n.º 4
0
void test_guess_encodingLatin1() {
  char* buffer = "a latin1 \xdf\x0a"; // ß
  gchar* guessedEncoding = guessEncoding(buffer, strlen(buffer));

  CU_ASSERT_PTR_NOT_NULL_FATAL(guessedEncoding);

#ifdef HAVE_CHARDET
  FO_ASSERT_STRING_EQUAL(guessedEncoding, "windows-1252");
#else
  FO_ASSERT_STRING_EQUAL(guessedEncoding, "iso-8859-1");
#endif

  if (guessedEncoding) {
    g_free(guessedEncoding);
  }
}
Ejemplo n.º 5
0
void test_guess_encodingUtf8() {
  char* buffer = "an utf8 ß";
  gchar* guessedEncoding = guessEncoding(buffer, strlen(buffer));

  CU_ASSERT_PTR_NOT_NULL_FATAL(guessedEncoding);

#ifdef HAVE_CHARDET
  FO_ASSERT_STRING_EQUAL(guessedEncoding, "UTF-8");
#else
  FO_ASSERT_STRING_EQUAL(guessedEncoding, "utf-8");
#endif

  if (guessedEncoding) {
    g_free(guessedEncoding);
  }
}
Ejemplo n.º 6
0
static int lStrcvt (lua_State* L) {
int len=0;
const char* str = luaL_checklstring(L,1,&len);
int cpFrom = luaL_checkint(L,2);
int cpTo = luaL_optint(L,3,-1);
if (cpTo<0) {
cpTo = cpFrom;
cpFrom = guessEncoding(str);
}
if (cpFrom>=1200&&cpFrom<=1203) len/=2;
char* out = strncvt(str, len, cpFrom, cpTo, &len);
if (!out) return 0;
if (cpTo>=1200&&cpTo<=1203) len*=2;
lua_pushlstring(L, out, len);
if (abs(str-out)>4) free(out);
return 1;
}
Ejemplo n.º 7
0
static lGuessEncoding (lua_State* L) {
lua_pushinteger(L, guessEncoding(luaL_checkstring(L,1)));
return 1;
}