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