Lines Matching refs:loc

208 	struct locdata *loc;
215 loc = cache_data[category];
217 if ((loc != NULL) && (strcmp(loc->l_lname, locname) == 0)) {
219 return (loc);
227 for (loc = cat_data[category]; loc != NULL; loc = loc->l_next) {
228 if (strcmp(locname, loc->l_lname) == 0) {
250 if (loc == NULL) {
252 loc = (*loaders[category])(locname);
254 if (loc != NULL)
255 (void) strlcpy(loc->l_lname, locname,
256 sizeof (loc->l_lname));
264 if (loc != NULL) {
265 cache_data[category] = loc;
266 if (!loc->l_cached) {
267 loc->l_cached = 1;
268 loc->l_next = cat_data[category];
269 cat_data[category] = loc;
274 return (loc);
360 __mb_cur_max_l(locale_t loc)
362 return (loc->ctype->lc_max_mblen);
378 locale_t loc;
381 loc = lmalloc(sizeof (*loc));
382 if (loc == NULL) {
390 loc->locdata[i] = src->locdata[i];
391 loc->loaded[i] = 0;
393 loc->collate = loc->locdata[LC_COLLATE]->l_data[0];
394 loc->ctype = loc->locdata[LC_CTYPE]->l_data[0];
395 loc->runelocale = loc->locdata[LC_CTYPE]->l_data[1];
396 loc->messages = loc->locdata[LC_MESSAGES]->l_data[0];
397 loc->monetary = loc->locdata[LC_MONETARY]->l_data[0];
398 loc->numeric = loc->locdata[LC_NUMERIC]->l_data[0];
399 loc->time = loc->locdata[LC_TIME]->l_data[0];
400 return (loc);
404 freelocale(locale_t loc)
411 if ((loc != NULL) && (loc != &posix_locale) && (!loc->on_list))
412 lfree(loc, sizeof (*loc));
418 locale_t loc;
431 loc = duplocale(___global_locale);
433 loc = duplocale(base);
435 if (loc == NULL) {
441 loc->loaded[i] = 0;
449 freelocale(loc);
453 loc->locdata[i] = ldata;
455 loc->collate = loc->locdata[LC_COLLATE]->l_data[0];
456 loc->ctype = loc->locdata[LC_CTYPE]->l_data[0];
457 loc->runelocale = loc->locdata[LC_CTYPE]->l_data[1];
458 loc->messages = loc->locdata[LC_MESSAGES]->l_data[0];
459 loc->monetary = loc->locdata[LC_MONETARY]->l_data[0];
460 loc->numeric = loc->locdata[LC_NUMERIC]->l_data[0];
461 loc->time = loc->locdata[LC_TIME]->l_data[0];
464 return (mklocname(loc));
468 uselocale(locale_t loc)
483 /* Argument loc is NULL if we are just querying. */
484 if (loc != NULL) {
489 if (loc == ___global_locale) {
493 *locptr = loc;
506 mklocname(locale_t loc)
512 if (strcmp(loc->locdata[0]->l_lname,
513 loc->locdata[i]->l_lname) != 0) {
525 (void) snprintf(loc->locname, sizeof (loc->locname),
527 loc->locdata[LC_CTYPE]->l_lname,
528 loc->locdata[LC_NUMERIC]->l_lname,
529 loc->locdata[LC_TIME]->l_lname,
530 loc->locdata[LC_COLLATE]->l_lname,
531 loc->locdata[LC_MONETARY]->l_lname,
532 loc->locdata[LC_MESSAGES]->l_lname);
534 (void) strlcpy(loc->locname, loc->locdata[LC_CTYPE]->l_lname,
535 sizeof (loc->locname));
537 return (loc);