xref: /openbsd/lib/libc/locale/nl_langinfo.c (revision 07ea8d15)
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