Lines Matching refs:locale

53 static char *g11n_locale2langtag(char *locale);
69 g11n_locale2langtag(char *locale) in g11n_locale2langtag() argument
74 if (!locale || !*locale) in g11n_locale2langtag()
77 if (strcmp(locale, "POSIX") == 0 || strcmp(locale, "C") == 0) in g11n_locale2langtag()
81 if (strlen(locale) < 2 || in g11n_locale2langtag()
82 !isalpha(locale[0]) || in g11n_locale2langtag()
83 !isalpha(locale[1]) || in g11n_locale2langtag()
84 (locale[2] != '\0' && in g11n_locale2langtag()
85 locale[2] != '_' && in g11n_locale2langtag()
86 locale[2] != '.' && in g11n_locale2langtag()
87 locale[2] != '@')) in g11n_locale2langtag()
94 strncpy(langtag, locale, 2); in g11n_locale2langtag()
98 if (locale[2] == '_') { in g11n_locale2langtag()
99 if (strlen(locale) < 5 || in g11n_locale2langtag()
100 !isalpha(locale[3]) || in g11n_locale2langtag()
101 !isalpha(locale[4]) || in g11n_locale2langtag()
102 (locale[5] != '\0' && (locale[5] != '.' && in g11n_locale2langtag()
103 locale[5] != '@'))) { in g11n_locale2langtag()
108 if (snprintf(langtag, 6, "%.*s-%.*s", 2, locale, 2, in g11n_locale2langtag()
109 locale + 3) == 5) in g11n_locale2langtag()
128 g11n_langtag_matches_locale(char *langtag, char *locale) in g11n_langtag_matches_locale() argument
132 if (strcasecmp(locale, "POSIX") == 0 || in g11n_langtag_matches_locale()
133 strcasecmp(locale, "C") == 0) in g11n_langtag_matches_locale()
143 if (strlen(locale) < 2 || in g11n_langtag_matches_locale()
144 (!isalpha(locale[0]) || !isalpha(locale[1]) || in g11n_langtag_matches_locale()
145 (locale[2] != '\0' && locale[2] != '_' && in g11n_langtag_matches_locale()
146 locale[2] != '.' && locale[2] != '@'))) in g11n_langtag_matches_locale()
156 if (strncasecmp(langtag, locale, 2) != 0) in g11n_langtag_matches_locale()
166 (locale[2] == '\0' || locale[2] == '.' || locale[2] == '@')) in g11n_langtag_matches_locale()
174 if (locale[2] == '\0' || locale[2] == '.' || locale[2] == '@') in g11n_langtag_matches_locale()
188 if (strlen(locale) < 5) in g11n_langtag_matches_locale()
191 if (locale[2] != '_' || !isalpha(locale[3]) || !isalpha(locale[4]) || in g11n_langtag_matches_locale()
192 (locale[5] != '\0' && locale[5] != '.' && locale[5] != '@')) in g11n_langtag_matches_locale()
196 if (strncasecmp(&langtag[3], &locale[3], 2) == 0) in g11n_langtag_matches_locale()
216 g11n_setlocale(int category, const char *locale) in g11n_setlocale() argument
230 if (!locale) in g11n_setlocale()
233 if (*locale && ((curr = setlocale(category, NULL))) && in g11n_setlocale()
234 strcmp(curr, locale) == 0) in g11n_setlocale()
238 (void) setlocale(category, locale); in g11n_setlocale()
247 char locale[64]; /* 64 bytes is plenty for locale names */ in g11n_getlocales() local
262 while (fgets(locale, sizeof (locale), locale_out)) { in g11n_getlocales()
264 if (!strchr(locale, '\n')) { in g11n_getlocales()
272 if (strncmp(locale, "iso_8859", 8) == 0) in g11n_getlocales()
284 *(strchr(locale, '\n')) = '\0'; /* remove the trailing \n */ in g11n_getlocales()
285 list[n_elems++] = xstrdup(locale); in g11n_getlocales()
304 char *locale; in g11n_getlangs() local
309 locale = g11n_getlocale(); in g11n_getlangs()
311 if (!locale || !*locale) in g11n_getlangs()
314 return (g11n_locale2langtag(locale)); in g11n_getlangs()