xref: /illumos-gate/usr/src/head/langinfo.h (revision 533affcbc7fc4d0c8132976ea454aaa715fe2307)
1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License, Version 1.0 only
6  * (the "License").  You may not use this file except in compliance
7  * with the License.
8  *
9  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10  * or http://www.opensolaris.org/os/licensing.
11  * See the License for the specific language governing permissions
12  * and limitations under the License.
13  *
14  * When distributing Covered Code, include this CDDL HEADER in each
15  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16  * If applicable, add the following below this CDDL HEADER, with the
17  * fields enclosed by brackets "[]" replaced with your own identifying
18  * information: Portions Copyright [yyyy] [name of copyright owner]
19  *
20  * CDDL HEADER END
21  */
22 /*
23  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
24  *
25  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
26  * Use is subject to license terms.
27  */
28 
29 /*	Copyright (c) 1988 AT&T	*/
30 /*	  All Rights Reserved	*/
31 
32 
33 #ifndef	_LANGINFO_H
34 #define	_LANGINFO_H
35 
36 #include <sys/feature_tests.h>
37 #include <nl_types.h>
38 
39 #ifdef	__cplusplus
40 extern "C" {
41 #endif
42 
43 /*
44  * The seven days of the week in their full beauty
45  */
46 
47 #define	DAY_1	  1	/* sunday */
48 #define	DAY_2	  2	/* monday */
49 #define	DAY_3	  3	/* tuesday */
50 #define	DAY_4	  4	/* wednesday */
51 #define	DAY_5	  5	/* thursday */
52 #define	DAY_6	  6	/* friday */
53 #define	DAY_7	  7	/* saturday */
54 
55 /*
56  * The abbreviated seven days of the week
57  */
58 
59 #define	ABDAY_1	  8  /* sun */
60 #define	ABDAY_2	  9  /* mon */
61 #define	ABDAY_3	  10 /* tue */
62 #define	ABDAY_4	  11 /* wed */
63 #define	ABDAY_5	  12 /* thu */
64 #define	ABDAY_6	  13 /* fri */
65 #define	ABDAY_7	  14 /* sat */
66 
67 /*
68  * The full names of the twelve months...
69  */
70 
71 #define	MON_1	  15 /* january */
72 #define	MON_2	  16 /* february */
73 #define	MON_3	  17 /* march */
74 #define	MON_4	  18 /* april */
75 #define	MON_5	  19 /* may */
76 #define	MON_6	  20 /* june */
77 #define	MON_7	  21 /* july */
78 #define	MON_8	  22 /* august */
79 #define	MON_9	  23 /* september */
80 #define	MON_10	  24 /* october */
81 #define	MON_11	  25 /* november */
82 #define	MON_12	  26 /* december */
83 
84 /*
85  * ... and their abbreviated form
86  */
87 
88 #define	ABMON_1	  27 /* jan */
89 #define	ABMON_2	  28 /* feb */
90 #define	ABMON_3	  29 /* mar */
91 #define	ABMON_4	  30 /* apr */
92 #define	ABMON_5	  31 /* may */
93 #define	ABMON_6	  32 /* jun */
94 #define	ABMON_7	  33 /* jul */
95 #define	ABMON_8	  34 /* aug */
96 #define	ABMON_9	  35 /* sep */
97 #define	ABMON_10  36 /* oct */
98 #define	ABMON_11  37 /* nov */
99 #define	ABMON_12  38 /* dec */
100 
101 /*
102  * plus some special strings you might need to know
103  */
104 
105 #define	RADIXCHAR 39	/* radix character */
106 #define	THOUSEP	  40	/* separator for thousand */
107 /* YESSTR and NOSTR marked as legacy in XPG5 and removed in SUSv3 */
108 #if !defined(_XPG6) || defined(__EXTENSIONS__)
109 #define	YESSTR	  41    /* affirmative response for yes/no queries */
110 #define	NOSTR	  42	/* negative response for yes/no queries */
111 #endif /* !defined(_XPG6) || defined(__EXTENSIONS__ */
112 #define	CRNCYSTR  43	/* currency symbol */
113 
114 /*
115  * Default string used to format date and time
116  *	e.g. Sunday, August 24 21:08:38 MET 1986
117  */
118 
119 #define	D_T_FMT	  44	/* string for formatting date and time */
120 #define	D_FMT	  45	/* date format */
121 #define	T_FMT	  46	/* time format */
122 #define	AM_STR	  47	/* am string */
123 #define	PM_STR	  48	/* pm string */
124 
125 /*
126  * Additions for XPG4 (XSH4) Compliance
127  */
128 
129 #define	CODESET		49	/* codeset name */
130 #define	T_FMT_AMPM	50	/* am or pm time format string */
131 #define	ERA		51	/* era description segments */
132 #define	ERA_D_FMT	52	/* era date format string */
133 #define	ERA_D_T_FMT	53	/* era date and time format string */
134 #define	ERA_T_FMT	54	/* era time format string */
135 #define	ALT_DIGITS	55	/* alternative symbols for digits */
136 #define	YESEXPR		56	/* affirmative response expression */
137 #define	NOEXPR		57	/* negative response expression */
138 #define	_DATE_FMT	58	/* strftime format for date(1) */
139 
140 #if defined(__EXTENSIONS__) || !defined(_XOPEN_SOURCE)
141 #define	MAXSTRMSG	58 /* Maximum number of strings in langinfo */
142 #endif /* defined(__EXTENSIONS__) || !defined(_XOPEN_SOURCE) */
143 
144 /*
145  * and the definitions of functions langinfo(3C)
146  */
147 char   *nl_langinfo(nl_item);	/* get a string from the database	*/
148 
149 #if defined(_XPG7) || !defined(_STRICT_SYMBOLS)
150 #ifndef	_LOCALE_T
151 #define	_LOCALE_T
152 typedef struct _locale *locale_t;
153 #endif
154 
155 char	*nl_langinfo_l(nl_item, locale_t);
156 #endif
157 
158 #ifdef	__cplusplus
159 }
160 #endif
161 
162 #endif	/* _LANGINFO_H */
163