diff options
author | Suren A. Chilingaryan <csa@dside.dyndns.org> | 2005-07-12 15:56:03 +0000 |
---|---|---|
committer | Suren A. Chilingaryan <csa@dside.dyndns.org> | 2005-07-12 15:56:03 +0000 |
commit | fad788d3f02564486039886b1de1cbf976776ac3 (patch) | |
tree | fc81add05e45e6de4e2e656fb0f08ed6e292dcf6 /src/lng.c | |
parent | e598a2372179812389a702b78d5f8537eb6827d9 (diff) | |
download | librcc-fad788d3f02564486039886b1de1cbf976776ac3.tar.gz librcc-fad788d3f02564486039886b1de1cbf976776ac3.tar.bz2 librcc-fad788d3f02564486039886b1de1cbf976776ac3.tar.xz librcc-fad788d3f02564486039886b1de1cbf976776ac3.zip |
Language/Charset autodetection fixes
Diffstat (limited to 'src/lng.c')
-rw-r--r-- | src/lng.c | 21 |
1 files changed, 19 insertions, 2 deletions
@@ -39,14 +39,31 @@ rcc_language_id rccGetLanguageByName(rcc_context ctx, const char *name) { static rcc_language_id rccGetDefaultLanguage(rcc_context ctx) { int err; unsigned int i; + rcc_option_value clo; + rcc_engine_ptr *engines; + rcc_language_config config; char stmp[RCC_MAX_LANGUAGE_CHARS+1]; + printf("DL: %lu\n", ctx->default_language); + if (ctx->default_language) return ctx->default_language; + if (!rccLocaleGetLanguage(stmp, ctx->locale_variable, RCC_MAX_LANGUAGE_CHARS)) { for (i=0;ctx->languages[i];i++) { if (!strcmp(ctx->languages[i]->sn, stmp)) { - if (rccGetOption(ctx, RCC_CONFIGURED_LANGUAGES_ONLY)) { - if (!rccCheckConfig(ctx, (rcc_language_id)i)) break; + clo = rccGetOption(ctx, RCC_CONFIGURED_LANGUAGES_ONLY); + printf("CLO: %lu\n", clo); + if (clo) { + config = rccCheckConfig(ctx, (rcc_language_id)i); + if ((!config)||(!config->configured)) { + if (clo == 1) { + engines = ctx->languages[i]->engines; + printf("%p",engines[0]); + printf("%p",engines[1]); + if ((!engines[0])||(!engines[1])) break; + } else break; + } } + ctx->default_language = (rcc_language_id)i; return (rcc_language_id)i; } } |