Add a manual page explaining the format of /etc/manpath.config.
[dragonfly/vkernel-mp.git] / lib / libc / locale / nl_langinfo.c
blob5ce905e02b03e07ec5264a0a5950d8550d113050
1 /* $NetBSD: src/lib/libc/locale/nl_langinfo.c,v 1.10 2004/07/21 20:27:46 tshiozak Exp $ */
2 /* $DragonFly: src/lib/libc/locale/nl_langinfo.c,v 1.4 2005/04/21 18:36:34 joerg Exp $ */
4 /*
5 * Written by J.T. Conklin <jtc@NetBSD.org>.
6 * Public domain.
7 */
9 #include <sys/localedef.h>
10 #include <langinfo.h>
11 #include <locale.h>
12 #include <nl_types.h>
13 #include "rune.h"
14 #include "runetype.h"
16 char *
17 nl_langinfo(nl_item item)
19 const char *s;
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[(size_t)(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[(size_t)(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[(size_t)(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[(size_t)(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[(size_t)(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 case CODESET:
106 s = _CurrentRuneLocale->rl_codeset;
107 if (!s)
108 s = "";
109 break;
110 case _DATE_FMT: /* local extension */
111 s = _CurrentTimeLocale->date_fmt;
112 break;
113 default:
114 s = "";
115 break;
118 /* The return value should be really const, but the interface says OW */
119 /* LINTED const castaway. */
120 return((char *) s);