Lines Matching refs:lc

384 lccanon(Lc_t* lc, unsigned long flags, char* buf, size_t siz)  in lccanon()  argument
386 if ((flags & LC_local) && (!lc->language || !(lc->language->flags & (LC_debug|LC_default)))) in lccanon()
393 if (lc->index && in lccanon()
394 GetLocaleInfo(lc->index, LOCALE_SENGLANGUAGE, lang, sizeof(lang)) && in lccanon()
395 GetLocaleInfo(lc->index, LOCALE_SENGCOUNTRY, ctry, sizeof(ctry))) in lccanon()
397 if (!GetLocaleInfo(lc->index, LOCALE_IDEFAULTANSICODEPAGE, code, sizeof(code))) in lccanon()
399 if (!lc->charset || !lc->charset->ms) in lccanon()
401 else if (streq(lc->charset->ms, code)) in lccanon()
404 return sfsprintf(buf, siz, "%s_%s.%s,%s", lang, ctry, code, lc->charset->ms); in lccanon()
411 return canonical(lc->language, lc->territory, lc->charset, lc->attributes, flags, buf, siz); in lccanon()
431 Lc_t* lc; in lcmake() local
451 for (lc = lcs; lc; lc = lc->next) in lcmake()
452 if (!strcasecmp(t, lc->code) || !strcasecmp(t, lc->name)) in lcmake()
453 return lc; in lcmake()
777 if (!(lc = newof(0, Lc_t, 1, n + z))) in lcmake()
779 strcpy((char*)(lc->name = (const char*)(lc + 1)), name); in lcmake()
780 lc->code = lc->name + n; in lcmake()
783 lc->flags |= LC_local; in lcmake()
784 strcpy((char*)lc->code, local[!i].name); in lcmake()
785 strcpy((char*)lc->code + local[!i].size, name + local[i].size); in lcmake()
788 strcpy((char*)lc->code, s); in lcmake()
789 lc->language = lp ? lp : &lc_languages[0]; in lcmake()
790 lc->territory = tp ? tp : &lc_territories[0]; in lcmake()
791 lc->charset = cp ? cp : &lc_charsets[0]; in lcmake()
792 if (streq(lc->charset->code, "utf8")) in lcmake()
793 lc->flags |= LC_utf8; in lcmake()
794 lc->attributes = al; in lcmake()
795 for (i = 0; i < elementsof(lc->info); i++) in lcmake()
796 lc->info[i].lc = lc; in lcmake()
806 lc->index = MAKELCID(MAKELANGID(lp->index, n), SORT_DEFAULT); in lcmake()
808 lc->next = lcs; in lcmake()
809 lcs = lc; in lcmake()
811 …erritory=%s charset=%s%s\n", "", lc->name, lc->code, "", lc->language->name, lc->territory->name, in lcmake()
812 return lc; in lcmake()
824 Lc_t lc; member
833 lcscan(Lc_t* lc) in lcscan() argument
837 if (!(ls = (Lc_scan_t*)lc)) in lcscan()
841 ls->lc.code = ls->lc.name = ls->buf; in lcscan()
843 ls->language = elementsof(ls->lc.territory->languages); in lcscan()
844 ls->attribute = elementsof(ls->lc.language->attributes); in lcscan()
846 …if (++ls->attribute >= elementsof(ls->lc.language->attributes) || !(ls->list.attribute = ls->lc.la… in lcscan()
848 …if (++ls->language >= elementsof(ls->lc.territory->languages) || !(ls->lc.language = ls->lc.territ… in lcscan()
855 ls->lc.territory = &lc_territories[ls->territory]; in lcscan()
856 ls->lc.language = ls->lc.territory->languages[ls->language = 0]; in lcscan()
858 if (ls->lc.language) in lcscan()
860 ls->lc.charset = ls->lc.language->charset ? ls->lc.language->charset : &lc_charsets[0]; in lcscan()
861 ls->list.attribute = ls->lc.language->attributes[ls->attribute = 0]; in lcscan()
865 ls->lc.charset = &lc_charsets[0]; in lcscan()
869 ls->lc.attributes = ls->list.attribute ? &ls->list : (Lc_attribute_list_t*)0; in lcscan()
871 if (!ls->lc.language || !ls->lc.language->index) in lcscan()
872 ls->lc.index = 0; in lcscan()
875 if ((!ls->list.attribute || !(ls->lc.index = ls->list.attribute->index)) && in lcscan()
876 (!ls->lc.territory || !(ls->lc.index = ls->lc.territory->indices[ls->language]))) in lcscan()
877 ls->lc.index = SUBLANG_DEFAULT; in lcscan()
878 ls->lc.index = MAKELCID(MAKELANGID(ls->lc.language->index, ls->lc.index), SORT_DEFAULT); in lcscan()
881 …canonical(ls->lc.language, ls->lc.territory, ls->lc.charset, ls->lc.attributes, 0, ls->buf, sizeof… in lcscan()