| /* $NetBSD: nl_langinfo.c,v 1.11 2005/11/29 03:11:59 christos Exp $ */ | |
| /* | |
| * Written by J.T. Conklin <[email protected]>. | |
| * Public domain. | |
| */ | |
| #include <LibConfig.h> | |
| #include <sys/EfiCdefs.h> | |
| #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 <sys/localedef.h> | |
| #include <locale.h> | |
| #include <nl_types.h> | |
| #include <langinfo.h> | |
| #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); | |
| } |