/* $NetBSD: nl_langinfo.c,v 1.11 2005/11/29 03:11:59 christos Exp $ */ /* * Written by J.T. Conklin . * Public domain. */ #include #include #if defined(LIBC_SCCS) && !defined(lint) __RCSID("$NetBSD: nl_langinfo.c,v 1.11 2005/11/29 03:11:59 christos Exp $"); #endif /* LIBC_SCCS and not lint */ #include #include #include #include #include "rune.h" #include "runetype.h" char * nl_langinfo(nl_item item) { const char *s; switch (item) { case D_T_FMT: s = _CurrentTimeLocale->d_t_fmt; break; case D_FMT: s = _CurrentTimeLocale->d_fmt; break; case T_FMT: s = _CurrentTimeLocale->t_fmt; break; case T_FMT_AMPM: s = _CurrentTimeLocale->t_fmt_ampm; break; case AM_STR: case PM_STR: s = _CurrentTimeLocale->am_pm[(size_t)(item - AM_STR)]; break; case DAY_1: case DAY_2: case DAY_3: case DAY_4: case DAY_5: case DAY_6: case DAY_7: s = _CurrentTimeLocale->day[(size_t)(item - DAY_1)]; break; case ABDAY_1: case ABDAY_2: case ABDAY_3: case ABDAY_4: case ABDAY_5: case ABDAY_6: case ABDAY_7: s = _CurrentTimeLocale->abday[(size_t)(item - ABDAY_1)]; break; case MON_1: case MON_2: case MON_3: case MON_4: case MON_5: case MON_6: case MON_7: case MON_8: case MON_9: case MON_10: case MON_11: case MON_12: s = _CurrentTimeLocale->mon[(size_t)(item - MON_1)]; break; case ABMON_1: case ABMON_2: case ABMON_3: case ABMON_4: case ABMON_5: case ABMON_6: case ABMON_7: case ABMON_8: case ABMON_9: case ABMON_10: case ABMON_11: case ABMON_12: s = _CurrentTimeLocale->abmon[(size_t)(item - ABMON_1)]; break; case RADIXCHAR: s = _CurrentNumericLocale->decimal_point; break; case THOUSEP: s = _CurrentNumericLocale->thousands_sep; break; case YESSTR: s = _CurrentMessagesLocale->yesstr; break; case YESEXPR: s = _CurrentMessagesLocale->yesexpr; break; case NOSTR: s = _CurrentMessagesLocale->nostr; break; case NOEXPR: s = _CurrentMessagesLocale->noexpr; break; case CRNCYSTR: /* XXX */ s = ""; break; case CODESET: #ifdef WITH_RUNE s = _CurrentRuneLocale->rl_codeset; #else s = NULL; #endif if (!s) s = ""; break; default: s = ""; break; } /* The return value should be really const, but the interface says OW */ return __UNCONST(s); }