nl_langinfo.c revision 1.5
1/* $OpenBSD: nl_langinfo.c,v 1.5 2005/08/08 08:05:35 espie Exp $ */ 2/* 3 * Written by J.T. Conklin <jtc@netbsd.org>. 4 * Public domain. 5 */ 6 7#include <sys/localedef.h> 8#include <locale.h> 9#include <nl_types.h> 10#include <langinfo.h> 11 12char * 13nl_langinfo(nl_item item) 14{ 15 const char *s; 16 17 switch (item) { 18 case D_T_FMT: 19 s = _CurrentTimeLocale->d_t_fmt; 20 break; 21 case D_FMT: 22 s = _CurrentTimeLocale->d_fmt; 23 break; 24 case T_FMT: 25 s = _CurrentTimeLocale->t_fmt; 26 break; 27 case T_FMT_AMPM: 28 s = _CurrentTimeLocale->t_fmt_ampm; 29 break; 30 case AM_STR: 31 case PM_STR: 32 s = _CurrentTimeLocale->am_pm[item - AM_STR]; 33 break; 34 case DAY_1: 35 case DAY_2: 36 case DAY_3: 37 case DAY_4: 38 case DAY_5: 39 case DAY_6: 40 case DAY_7: 41 s = _CurrentTimeLocale->day[item - DAY_1]; 42 break; 43 case ABDAY_1: 44 case ABDAY_2: 45 case ABDAY_3: 46 case ABDAY_4: 47 case ABDAY_5: 48 case ABDAY_6: 49 case ABDAY_7: 50 s = _CurrentTimeLocale->abday[item - ABDAY_1]; 51 break; 52 case MON_1: 53 case MON_2: 54 case MON_3: 55 case MON_4: 56 case MON_5: 57 case MON_6: 58 case MON_7: 59 case MON_8: 60 case MON_9: 61 case MON_10: 62 case MON_11: 63 case MON_12: 64 s = _CurrentTimeLocale->mon[item - MON_1]; 65 break; 66 case ABMON_1: 67 case ABMON_2: 68 case ABMON_3: 69 case ABMON_4: 70 case ABMON_5: 71 case ABMON_6: 72 case ABMON_7: 73 case ABMON_8: 74 case ABMON_9: 75 case ABMON_10: 76 case ABMON_11: 77 case ABMON_12: 78 s = _CurrentTimeLocale->abmon[item - ABMON_1]; 79 break; 80 case RADIXCHAR: 81 s = _CurrentNumericLocale->decimal_point; 82 break; 83 case THOUSEP: 84 s = _CurrentNumericLocale->thousands_sep; 85 break; 86 case YESSTR: 87 s = _CurrentMessagesLocale->yesstr; 88 break; 89 case YESEXPR: 90 s = _CurrentMessagesLocale->yesexpr; 91 break; 92 case NOSTR: 93 s = _CurrentMessagesLocale->nostr; 94 break; 95 case NOEXPR: 96 s = _CurrentMessagesLocale->noexpr; 97 break; 98 case CRNCYSTR: /* XXX */ 99 s = ""; 100 break; 101 default: 102 s = ""; 103 break; 104 } 105 106 return (char *) s; 107} 108