Lines Matching refs:category

157 native_setlocale(int category, const char* locale)
170 if (category == LC_MESSAGES)
172 sys = uwin_setlocale(category, usr);
174 sfprintf(sfstderr, "locale uwin %17s %-24s %-24s\n", lc_categories[lcindex(category, 0)].name, usr, sys);
2335 register int category = cp->internal;
2347 if (!LCINFO(category)->data)
2358 LCINFO(category)->data = (void*)dp;
2426 default_setlocale(int category, const char* locale)
2438 return (locales[1]->flags & (1<<category)) ? locales[1]->name : locales[0]->name;
2444 * set a single AST_LC_* locale category
2445 * the caller must validate category
2450 single(int category, Lc_t* lc, unsigned int flags)
2457 sfprintf(sfstderr, "locale single %16s %16s flags %04x\n", lc_categories[category].name, lc ? lc->name : 0, flags);
2462 lc_categories[category].prev = lc;
2463 if ((flags & LC_setenv) && lc_all && locales[category])
2465 if (lc_categories[category].setf)
2466 (*lc_categories[category].setf)(&lc_categories[category]);
2467 return (char*)locales[category]->name;
2470 if (!lc && (!(lc_categories[category].flags & LC_setlocale) || !(lc = lc_categories[category].prev)) && !(lc = lc_all) && !(lc = lc_categories[category].prev) && !(lc = lang))
2473 if (locales[category] != lc)
2475 if (lc_categories[category].external == -lc_categories[category].internal)
2485 sys = setlocale(lc_categories[category].external, lcmake(NiL)->name);
2486 else if (!(sys = setlocale(lc_categories[category].external, lc->name)) &&
2487 (streq(lc->name, lc->code) || !(sys = setlocale(lc_categories[category].external, lc->code))) &&
2489 sys = setlocale(lc_categories[category].external, lc->language->code);
2509 if (lc_categories[category].external != -lc_categories[category].internal)
2510 setlocale(lc_categories[category].external, lcmake(NiL)->name);
2512 locales[category] = lc;
2513 if (lc_categories[category].setf && (*lc_categories[category].setf)(&lc_categories[category]))
2515 locales[category] = lc_categories[category].prev;
2518 if ((lc->flags & LC_default) || category == AST_LC_MESSAGES && lc->name[0] == 'e' && lc->name[1] == 'n' && (lc->name[2] == 0 || lc->name[2] == '_' && lc->name[3] == 'U'))
2519 ast.locale.set &= ~(1<<category);
2521 ast.locale.set |= (1<<category);
2523 else if (lc_categories[category].flags ^ flags)
2525 lc_categories[category].flags &= ~(LC_setenv|LC_setlocale);
2526 lc_categories[category].flags |= flags;
2530 if (lc_categories[category].setf)
2531 (*lc_categories[category].setf)(&lc_categories[category]);
2537 sfprintf(sfstderr, "locale set %17s %16s %16s %16s", lc_categories[category].name, lc->name, sys, lc_categories[category].prev ? lc_categories[category].prev->name : NiL);
2538 if (category == AST_LC_CTYPE)
2551 else if (category == AST_LC_NUMERIC)
2553 Lc_numeric_t* dp = (Lc_numeric_t*)LCINFO(category)->data;
2557 if ((locales[category]->flags | lc_categories[category].flags) & LC_default)
2559 if ((locales[category]->flags | lc_categories[category].flags) & LC_local)
2561 if ((locales[category]->flags | lc_categories[category].flags) & LC_setlocale)
2563 if ((locales[category]->flags | lc_categories[category].flags) & LC_setenv)
2690 _ast_setlocale(int category, const char* locale)
2704 if ((category = lcindex(category, 0)) < 0)
2713 if (category != AST_LC_ALL && category != AST_LC_LANG)
2714 return (char*)locales[category]->name;
2755 sfprintf(sfstderr, "locale user %17s %16s %16s %16s%s%s\n", category == AST_LC_LANG ? "LANG" : lc_categories[category].name, locale && !*locale ? "''" : locale, "", "", initialized ? "" : " initial", (ast.locale.set & AST_LC_setenv) ? " setenv" : "");
2767 else if (category == AST_LC_ALL)
2821 else if (category == AST_LC_LANG || !(p = lc_categories[category].prev))
2828 if (category == AST_LC_LANG)
2843 else if (category != AST_LC_ALL)
2846 return single(category, p, f);
2848 lc_categories[category].prev = p;
2849 return (char*)locales[category]->name;