static void det_defdupchar(char *filename) { if (prefstringchar < 0) { defdupchar = findfiletype(filename, 0, &tflag); if (defdupchar < 0) defdupchar = 0; } }
static void det_prefstringchar(char *preftype) { if (preftype != NULL) { prefstringchar = findfiletype(preftype, 1, &deftflag); if (prefstringchar < 0 && strcmp(preftype, "tex") != 0 && strcmp(preftype, "nroff") != 0) { fprintf(stderr, ISPELL_C_BAD_TYPE, preftype); exit(1); } } }
void ISpellChecker::setDictionaryEncoding( const char * hashname, const char * encoding ) { /* Get Hash encoding from XML file. This should always work! */ try_autodetect_charset(encoding); if (g_iconv_is_valid(m_translate_in) && g_iconv_is_valid(m_translate_out)) { /* We still have to setup prefstringchar*/ prefstringchar = findfiletype("utf8", 1, deftflag < 0 ? &deftflag : static_cast<int *>(NULL)); if (prefstringchar < 0) { std::string teststring; for(int n1 = 1; n1 <= 15; n1++) { teststring = "latin" + n1; prefstringchar = findfiletype(teststring.c_str(), 1, deftflag < 0 ? &deftflag : static_cast<int *>(NULL)); if (prefstringchar >= 0) break; } } return; /* success */ } /* Test for UTF-8 first */ prefstringchar = findfiletype("utf8", 1, deftflag < 0 ? &deftflag : static_cast<int *>(NULL)); if (prefstringchar >= 0) { m_translate_in = g_iconv_open("UTF-8", "UTF-8"); m_translate_out = g_iconv_open("UTF-8", "UTF-8"); } if (g_iconv_is_valid(m_translate_in) && g_iconv_is_valid(m_translate_out)) return; /* success */ /* Test for "latinN" */ if (!g_iconv_is_valid(m_translate_in)) { /* Look for "altstringtype" names from latin1 to latin15 */ for(int n1 = 1; n1 <= 15; n1++) { char * teststring = g_strdup_printf("latin%u", n1); prefstringchar = findfiletype(teststring, 1, deftflag < 0 ? &deftflag : static_cast<int *>(NULL)); if (prefstringchar >= 0) { m_translate_in = g_iconv_open(teststring, "UTF-8"); m_translate_out = g_iconv_open("UTF-8", teststring); g_free (teststring); break; } else { g_free (teststring); } } } /* If nothing found, use latin1 */ if (!g_iconv_is_valid(m_translate_in)) { m_translate_in = g_iconv_open("latin1", "UTF-8"); m_translate_out = g_iconv_open("UTF-8", "latin1"); } }