1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
|
/*-
* Copyright (c) 2011 The FreeBSD Foundation
* All rights reserved.
*
* This software was developed by David Chisnall under sponsorship from
* the FreeBSD Foundation.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $FreeBSD$
*/
#ifndef _XLOCALE_H_
#define _XLOCALE_H_
#include <locale.h>
__BEGIN_DECLS
/*
* Extended locale versions of the locale-aware functions from string.h.
*
* Include <string.h> before <xlocale.h> to expose these.
*/
#ifdef _STRING_H_
int strcoll_l(const char *, const char *, locale_t);
size_t strxfrm_l(char *, const char *, size_t, locale_t);
int strcasecmp_l(const char *, const char *, locale_t);
char *strcasestr_l(const char *, const char *, locale_t);
int strncasecmp_l(const char *, const char *, size_t, locale_t);
#endif
/*
* Extended locale versions of the locale-aware functions from inttypes.h.
*
* Include <inttypes.h> before <xlocale.h> to expose these.
*/
#ifdef _INTTYPES_H_
intmax_t
strtoimax_l(const char * __restrict, char ** __restrict, int, locale_t);
uintmax_t
strtoumax_l(const char * __restrict, char ** __restrict, int, locale_t);
intmax_t
wcstoimax_l(const wchar_t * __restrict, wchar_t ** __restrict, int , locale_t);
uintmax_t
wcstoumax_l(const wchar_t * __restrict, wchar_t ** __restrict, int, locale_t);
#endif
/*
* Extended locale versions of the locale-aware functions from monetary.h.
*
* Include <monetary.h> before <xlocale.h> to expose these.
*/
#ifdef _MONETARY_H_
ssize_t strfmon_l(char *, size_t, locale_t, const char *, ...)
# if __GNUC__ > 2 || __GNUC__ == 2 && __GNUC_MINOR__ >= 7
__attribute__((__format__ (__strfmon__, 4, 5)))
# endif
;
#endif
/*
* Extended locale versions of the locale-aware functions from stdlib.h.
*
* Include <stdlib.h> before <xlocale.h> to expose these.
*/
#ifdef _STDLIB_H_
double atof_l(const char *, locale_t);
int atoi_l(const char *, locale_t);
long atol_l(const char *, locale_t);
long long atoll_l(const char *, locale_t);
int mblen_l(const char *, size_t, locale_t);
size_t
mbstowcs_l(wchar_t * __restrict, const char * __restrict, size_t, locale_t);
int
mbtowc_l(wchar_t * __restrict, const char * __restrict, size_t, locale_t);
double strtod_l(const char *, char **, locale_t);
float strtof_l(const char *, char **, locale_t);
long strtol_l(const char *, char **, int, locale_t);
long double strtold_l(const char *, char **, locale_t);
long long strtoll_l(const char *, char **, int, locale_t);
unsigned long strtoul_l(const char *, char **, int, locale_t);
unsigned long long strtoull_l(const char *, char **, int, locale_t);
size_t
wcstombs_l(char * __restrict, const wchar_t * __restrict, size_t, locale_t);
int wctomb_l(char *, wchar_t, locale_t);
int ___mb_cur_max_l(locale_t);
#define MB_CUR_MAX_L(x) (___mb_cur_max_l(x))
#endif
/*
* Extended locale versions of the locale-aware functions from time.h.
*
* Include <time.h> before <xlocale.h> to expose these.
*/
#ifdef _TIME_H_
size_t
strftime_l(char * __restrict, size_t, const char * __restrict, const
struct tm * __restrict, locale_t)
# if __GNUC__ > 2 || __GNUC__ == 2 && __GNUC_MINOR__ >= 7
__attribute__((__format__ (__strftime__, 3, 0)))
# endif
;
char *
strptime_l(const char * __restrict, const char * __restrict,
struct tm * __restrict, locale_t);
#endif
#ifdef _LANGINFO_H_
char *nl_langinfo_l(nl_item, locale_t);
#endif
#ifdef _CTYPE_H_
#include <_xlocale_ctype.h>
#endif
#ifdef _WCTYPE_H_
#define XLOCALE_WCTYPES 1
#include <_xlocale_ctype.h>
#endif
#ifdef _STDIO_H_
int fprintf_l(FILE * __restrict, locale_t, const char * __restrict, ...)
__printflike(3, 4);
int fscanf_l(FILE * __restrict, locale_t, const char * __restrict, ...)
__scanflike(3, 4);
int printf_l(locale_t, const char * __restrict, ...) __printflike(2, 3);
int scanf_l(locale_t, const char * __restrict, ...) __scanflike(2, 3);
int sprintf_l(char * __restrict, locale_t, const char * __restrict, ...)
__printflike(3, 4);
int sscanf_l(const char * __restrict, locale_t, const char * __restrict, ...)
__scanflike(3, 4);
int vfprintf_l(FILE * __restrict, locale_t, const char * __restrict, __va_list)
__printflike(3, 0);
int vprintf_l(locale_t, const char * __restrict, __va_list) __printflike(2, 0);
int vsprintf_l(char * __restrict, locale_t, const char * __restrict, __va_list)
__printflike(3, 0);
int snprintf_l(char * __restrict, size_t, locale_t, const char * __restrict,
...) __printflike(4, 5);
int vfscanf_l(FILE * __restrict, locale_t, const char * __restrict, __va_list)
__scanflike(3, 0);
int vscanf_l(locale_t, const char * __restrict, __va_list) __scanflike(2, 0);
int vsnprintf_l(char * __restrict, size_t, locale_t, const char * __restrict,
va_list) __printflike(4, 0);
int vsscanf_l(const char * __restrict, locale_t, const char * __restrict,
va_list) __scanflike(3, 0);
int dprintf_l(int, locale_t, const char * __restrict, ...) __printflike(3, 4);
int vdprintf_l(int, locale_t, const char * __restrict, __va_list)
__printflike(3, 0);
int asprintf_l(char **, locale_t, const char *, ...) __printflike(3, 4);
int vasprintf_l(char **, locale_t, const char *, __va_list) __printflike(3, 0);
#endif
#ifdef _WCHAR_H_
wint_t btowc_l(int, locale_t);
wint_t fgetwc_l(FILE *, locale_t);
wchar_t *
fgetws_l(wchar_t * __restrict, int, FILE * __restrict, locale_t);
wint_t fputwc_l(wchar_t, FILE *, locale_t);
int
fputws_l(const wchar_t * __restrict, FILE * __restrict, locale_t);
int
fwprintf_l(FILE * __restrict, locale_t, const wchar_t * __restrict,
...);
int
fwscanf_l(FILE * __restrict, locale_t, const wchar_t * __restrict, ...);
wint_t getwc_l(FILE *, locale_t);
wint_t getwchar_l(locale_t);
size_t
mbrlen_l(const char * __restrict, size_t, mbstate_t * __restrict, locale_t);
size_t
mbrtowc_l(wchar_t * __restrict, const char * __restrict, size_t,
mbstate_t * __restrict, locale_t);
int mbsinit_l(const mbstate_t *, locale_t);
size_t
mbsrtowcs_l(wchar_t * __restrict, const char ** __restrict, size_t,
mbstate_t * __restrict, locale_t);
wint_t putwc_l(wchar_t, FILE *, locale_t);
wint_t putwchar_l(wchar_t, locale_t);
int
swprintf_l(wchar_t * __restrict, size_t n, locale_t,
const wchar_t * __restrict, ...);
int
swscanf_l(const wchar_t * __restrict, locale_t, const wchar_t * __restrict,
...);
wint_t ungetwc_l(wint_t, FILE *, locale_t);
int
vfwprintf_l(FILE * __restrict, locale_t, const wchar_t * __restrict,
__va_list);
int
vswprintf_l(wchar_t * __restrict, size_t n, locale_t,
const wchar_t * __restrict, __va_list);
int vwprintf_l(locale_t, const wchar_t * __restrict, __va_list);
size_t
wcrtomb_l(char * __restrict, wchar_t, mbstate_t * __restrict, locale_t);
int wcscoll_l(const wchar_t *, const wchar_t *, locale_t);
size_t
wcsftime_l(wchar_t * __restrict, size_t, const wchar_t * __restrict,
const struct tm * __restrict, locale_t);
size_t
wcsrtombs_l(char * __restrict, const wchar_t ** __restrict, size_t,
mbstate_t * __restrict, locale_t);
double wcstod_l(const wchar_t * __restrict, wchar_t ** __restrict, locale_t);
long
wcstol_l(const wchar_t * __restrict, wchar_t ** __restrict, int, locale_t);
unsigned long
wcstoul_l(const wchar_t * __restrict, wchar_t ** __restrict, int, locale_t);
int wcswidth_l(const wchar_t *, size_t, locale_t);
size_t
wcsxfrm_l(wchar_t * __restrict, const wchar_t * __restrict, size_t, locale_t);
int wctob_l(wint_t, locale_t);
int wcwidth_l(wchar_t, locale_t);
int wprintf_l(locale_t, const wchar_t * __restrict, ...);
int wscanf_l(locale_t, const wchar_t * __restrict, ...);
int
vfwscanf_l(FILE * __restrict, locale_t, const wchar_t * __restrict,
__va_list);
int vswscanf_l(const wchar_t * __restrict, locale_t,
const wchar_t *__restrict, __va_list);
int vwscanf_l(locale_t, const wchar_t * __restrict, __va_list);
float wcstof_l(const wchar_t * __restrict, wchar_t ** __restrict, locale_t);
long double
wcstold_l(const wchar_t * __restrict, wchar_t ** __restrict, locale_t);
long long
wcstoll_l(const wchar_t * __restrict, wchar_t ** __restrict, int, locale_t);
unsigned long long
wcstoull_l(const wchar_t * __restrict, wchar_t ** __restrict, int, locale_t);
size_t
mbsnrtowcs_l(wchar_t * __restrict, const char ** __restrict, size_t, size_t,
mbstate_t * __restrict, locale_t);
int wcscasecmp_l(const wchar_t *, const wchar_t *, locale_t);
int wcsncasecmp_l(const wchar_t *, const wchar_t *, size_t, locale_t);
size_t
wcsnrtombs_l(char * __restrict, const wchar_t ** __restrict, size_t, size_t,
mbstate_t * __restrict, locale_t);
#endif
struct lconv *localeconv_l(locale_t);
__END_DECLS
#endif
|