root / lab4 / .minix-src / include / wchar.h @ 13
History | View | Annotate | Download (11.6 KB)
1 |
/* $NetBSD: wchar.h,v 1.41 2014/10/13 00:47:03 christos Exp $ */
|
---|---|
2 |
|
3 |
/*-
|
4 |
* Copyright (c)1999 Citrus Project,
|
5 |
* All rights reserved.
|
6 |
*
|
7 |
* Redistribution and use in source and binary forms, with or without
|
8 |
* modification, are permitted provided that the following conditions
|
9 |
* are met:
|
10 |
* 1. Redistributions of source code must retain the above copyright
|
11 |
* notice, this list of conditions and the following disclaimer.
|
12 |
* 2. Redistributions in binary form must reproduce the above copyright
|
13 |
* notice, this list of conditions and the following disclaimer in the
|
14 |
* documentation and/or other materials provided with the distribution.
|
15 |
*
|
16 |
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
17 |
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
18 |
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
19 |
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
20 |
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
21 |
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
22 |
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
23 |
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
24 |
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
25 |
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
26 |
* SUCH DAMAGE.
|
27 |
*/
|
28 |
|
29 |
/*-
|
30 |
* Copyright (c) 1999, 2000 The NetBSD Foundation, Inc.
|
31 |
* All rights reserved.
|
32 |
*
|
33 |
* This code is derived from software contributed to The NetBSD Foundation
|
34 |
* by Julian Coleman.
|
35 |
*
|
36 |
* Redistribution and use in source and binary forms, with or without
|
37 |
* modification, are permitted provided that the following conditions
|
38 |
* are met:
|
39 |
* 1. Redistributions of source code must retain the above copyright
|
40 |
* notice, this list of conditions and the following disclaimer.
|
41 |
* 2. Redistributions in binary form must reproduce the above copyright
|
42 |
* notice, this list of conditions and the following disclaimer in the
|
43 |
* documentation and/or other materials provided with the distribution.
|
44 |
*
|
45 |
* THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
|
46 |
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
47 |
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
48 |
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
|
49 |
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
50 |
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
51 |
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
52 |
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
53 |
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
54 |
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
55 |
* POSSIBILITY OF SUCH DAMAGE.
|
56 |
*/
|
57 |
|
58 |
#ifndef _WCHAR_H_
|
59 |
#define _WCHAR_H_
|
60 |
|
61 |
#include <sys/cdefs.h> |
62 |
#include <sys/featuretest.h> |
63 |
#include <machine/wchar_limits.h> |
64 |
#include <sys/ansi.h> |
65 |
#include <sys/null.h> |
66 |
|
67 |
#include <stdio.h> /* for FILE* */ |
68 |
|
69 |
#if defined(_BSD_WCHAR_T_) && !defined(__cplusplus)
|
70 |
typedef _BSD_WCHAR_T_ wchar_t;
|
71 |
#undef _BSD_WCHAR_T_
|
72 |
#endif
|
73 |
|
74 |
#ifdef _BSD_MBSTATE_T_
|
75 |
typedef _BSD_MBSTATE_T_ mbstate_t;
|
76 |
#undef _BSD_MBSTATE_T_
|
77 |
#endif
|
78 |
|
79 |
#ifdef _BSD_WINT_T_
|
80 |
typedef _BSD_WINT_T_ wint_t;
|
81 |
#undef _BSD_WINT_T_
|
82 |
#endif
|
83 |
|
84 |
#ifdef _BSD_SIZE_T_
|
85 |
typedef _BSD_SIZE_T_ size_t;
|
86 |
#undef _BSD_SIZE_T_
|
87 |
#endif
|
88 |
|
89 |
#if defined(_POSIX_C_SOURCE)
|
90 |
#ifndef __VA_LIST_DECLARED
|
91 |
typedef __va_list va_list;
|
92 |
#define __VA_LIST_DECLARED
|
93 |
#endif
|
94 |
#endif
|
95 |
|
96 |
struct tm;
|
97 |
|
98 |
__BEGIN_DECLS |
99 |
wint_t btowc(int);
|
100 |
size_t mbrlen(const char * __restrict, size_t, mbstate_t * __restrict); |
101 |
size_t mbrtowc(wchar_t * __restrict, const char * __restrict, size_t, |
102 |
mbstate_t * __restrict); |
103 |
int mbsinit(const mbstate_t *); |
104 |
size_t mbsrtowcs(wchar_t * __restrict, const char ** __restrict, size_t, |
105 |
mbstate_t * __restrict); |
106 |
size_t wcrtomb(char * __restrict, wchar_t, mbstate_t * __restrict);
|
107 |
wchar_t *wcscat(wchar_t * __restrict, const wchar_t * __restrict);
|
108 |
wchar_t *wcschr(const wchar_t *, wchar_t);
|
109 |
int wcscmp(const wchar_t *, const wchar_t *); |
110 |
int wcscoll(const wchar_t *, const wchar_t *); |
111 |
wchar_t *wcscpy(wchar_t * __restrict, const wchar_t * __restrict);
|
112 |
size_t wcscspn(const wchar_t *, const wchar_t *); |
113 |
size_t wcsftime(wchar_t * __restrict, size_t, const wchar_t * __restrict,
|
114 |
const struct tm * __restrict); |
115 |
size_t wcslen(const wchar_t *);
|
116 |
wchar_t *wcsncat(wchar_t * __restrict, const wchar_t * __restrict, size_t);
|
117 |
int wcsncmp(const wchar_t *, const wchar_t *, size_t); |
118 |
wchar_t *wcsncpy(wchar_t * __restrict , const wchar_t * __restrict, size_t);
|
119 |
wchar_t *wcspbrk(const wchar_t *, const wchar_t *); |
120 |
wchar_t *wcsrchr(const wchar_t *, wchar_t);
|
121 |
size_t wcsrtombs(char * __restrict, const wchar_t ** __restrict, size_t, |
122 |
mbstate_t * __restrict); |
123 |
size_t wcsspn(const wchar_t *, const wchar_t *); |
124 |
wchar_t *wcsstr(const wchar_t *, const wchar_t *); |
125 |
wchar_t *wcstok(wchar_t * __restrict, const wchar_t * __restrict,
|
126 |
wchar_t ** __restrict); |
127 |
size_t wcsxfrm(wchar_t *, const wchar_t *, size_t);
|
128 |
wchar_t *wcswcs(const wchar_t *, const wchar_t *); |
129 |
wchar_t *wmemchr(const wchar_t *, wchar_t, size_t);
|
130 |
int wmemcmp(const wchar_t *, const wchar_t *, size_t); |
131 |
wchar_t *wmemcpy(wchar_t * __restrict, const wchar_t * __restrict, size_t);
|
132 |
wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t);
|
133 |
wchar_t *wmemset(wchar_t *, wchar_t, size_t); |
134 |
|
135 |
size_t wcslcat(wchar_t *, const wchar_t *, size_t);
|
136 |
size_t wcslcpy(wchar_t *, const wchar_t *, size_t);
|
137 |
int wcswidth(const wchar_t *, size_t); |
138 |
int wctob(wint_t);
|
139 |
int wcwidth(wchar_t);
|
140 |
|
141 |
unsigned long int wcstoul(const wchar_t * __restrict, |
142 |
wchar_t ** __restrict, int);
|
143 |
long int wcstol(const wchar_t * __restrict, |
144 |
wchar_t ** __restrict, int);
|
145 |
double wcstod(const wchar_t * __restrict, wchar_t ** __restrict); |
146 |
|
147 |
#if defined(_ISOC99_SOURCE) || (__STDC_VERSION__ - 0) > 199901L || \ |
148 |
defined(_NETBSD_SOURCE) || \ |
149 |
(_POSIX_C_SOURCE - 0) >= 200112L || (_XOPEN_SOURCE - 0) >= 600 |
150 |
float wcstof(const wchar_t * __restrict, wchar_t ** __restrict); |
151 |
long double wcstold(const wchar_t * __restrict, wchar_t ** __restrict); |
152 |
|
153 |
/* LONGLONG */
|
154 |
long long int wcstoll(const wchar_t * __restrict, |
155 |
wchar_t ** __restrict, int);
|
156 |
/* LONGLONG */
|
157 |
unsigned long long int wcstoull(const wchar_t * __restrict, |
158 |
wchar_t ** __restrict, int);
|
159 |
#endif
|
160 |
|
161 |
#if (_POSIX_C_SOURCE - 0) >= 200809L || (_XOPEN_SOURCE - 0) >= 700 || \ |
162 |
defined(_NETBSD_SOURCE) |
163 |
FILE *open_wmemstream(wchar_t **, size_t *); |
164 |
#endif
|
165 |
|
166 |
wint_t ungetwc(wint_t, FILE *); |
167 |
wint_t fgetwc(FILE *); |
168 |
wchar_t *fgetws(wchar_t * __restrict, int, FILE * __restrict);
|
169 |
wint_t getwc(FILE *); |
170 |
wint_t getwchar(void);
|
171 |
wint_t fputwc(wchar_t, FILE *); |
172 |
int fputws(const wchar_t * __restrict, FILE * __restrict); |
173 |
wint_t putwc(wchar_t, FILE *); |
174 |
wint_t putwchar(wchar_t); |
175 |
|
176 |
int fwide(FILE *, int); |
177 |
|
178 |
wchar_t *fgetwln(FILE * __restrict, size_t * __restrict); |
179 |
int fwprintf(FILE * __restrict, const wchar_t * __restrict, ...); |
180 |
int fwscanf(FILE * __restrict, const wchar_t * __restrict, ...); |
181 |
int swprintf(wchar_t * __restrict, size_t n, const wchar_t * __restrict, ...); |
182 |
int swscanf(const wchar_t * __restrict, const wchar_t * __restrict, ...); |
183 |
int vfwprintf(FILE * __restrict, const wchar_t * __restrict, __va_list); |
184 |
int vswprintf(wchar_t * __restrict, size_t, const wchar_t * __restrict, |
185 |
__va_list); |
186 |
int vwprintf(const wchar_t * __restrict, __va_list); |
187 |
int wprintf(const wchar_t * __restrict, ...); |
188 |
int wscanf(const wchar_t * __restrict, ...); |
189 |
#if defined(_ISOC99_SOURCE) || (__STDC_VERSION__ - 0) > 199901L || \ |
190 |
defined(_NETBSD_SOURCE) || \ |
191 |
(_POSIX_C_SOURCE - 0) >= 200112L || (_XOPEN_SOURCE - 0) >= 600 |
192 |
int vfwscanf(FILE * __restrict, const wchar_t * __restrict, __va_list); |
193 |
int vswscanf(const wchar_t * __restrict, const wchar_t * __restrict, |
194 |
__va_list); |
195 |
int vwscanf(const wchar_t * __restrict, __va_list); |
196 |
#endif
|
197 |
#if defined(_NETBSD_SOURCE)
|
198 |
struct tinfo;
|
199 |
int t_putws(struct tinfo *, const wchar_t *, int, void (*)(wchar_t, void *), |
200 |
void *);
|
201 |
wchar_t *wcsdup (const wchar_t *);
|
202 |
int wcsncasecmp (const wchar_t *, const wchar_t *, size_t); |
203 |
int wcscasecmp(const wchar_t *, const wchar_t *); |
204 |
#endif
|
205 |
__END_DECLS |
206 |
|
207 |
#ifndef WEOF
|
208 |
#define WEOF ((wint_t)-1) |
209 |
#endif
|
210 |
|
211 |
#define getwc(f) fgetwc(f)
|
212 |
#define getwchar() getwc(stdin)
|
213 |
#define putwc(wc, f) fputwc((wc), (f))
|
214 |
#define putwchar(wc) putwc((wc), stdout)
|
215 |
|
216 |
#if (_POSIX_C_SOURCE - 0) >= 200809L || defined(_NETBSD_SOURCE) |
217 |
# ifndef __LOCALE_T_DECLARED
|
218 |
typedef struct _locale *locale_t; |
219 |
# define __LOCALE_T_DECLARED
|
220 |
# endif
|
221 |
__BEGIN_DECLS |
222 |
size_t mbsnrtowcs(wchar_t * __restrict, const char ** __restrict, size_t, |
223 |
size_t, mbstate_t * __restrict); |
224 |
size_t wcsnrtombs(char * __restrict, const wchar_t ** __restrict, size_t, |
225 |
size_t, mbstate_t * __restrict); |
226 |
|
227 |
int wcscoll_l(const wchar_t *, const wchar_t *, locale_t); |
228 |
size_t wcsxfrm_l(wchar_t *, const wchar_t *, size_t, locale_t);
|
229 |
int wcsncasecmp_l(const wchar_t *, const wchar_t *, size_t, locale_t); |
230 |
int wcscasecmp_l(const wchar_t *, const wchar_t *, locale_t); |
231 |
|
232 |
size_t wcsftime_l(wchar_t * __restrict, size_t, const wchar_t * __restrict,
|
233 |
const struct tm * __restrict, locale_t); |
234 |
|
235 |
float wcstof_l(const wchar_t * __restrict, wchar_t ** __restrict, locale_t); |
236 |
double wcstod_l(const wchar_t * __restrict, wchar_t ** __restrict, locale_t); |
237 |
long double wcstold_l(const wchar_t * __restrict, wchar_t ** __restrict, |
238 |
locale_t); |
239 |
long int wcstol_l(const wchar_t * __restrict, wchar_t ** __restrict, int, |
240 |
locale_t); |
241 |
unsigned long int wcstoul_l(const wchar_t * __restrict, |
242 |
wchar_t ** __restrict, int, locale_t);
|
243 |
/* LONGLONG */
|
244 |
long long int wcstoll_l(const wchar_t * __restrict, wchar_t ** __restrict, int, |
245 |
locale_t); |
246 |
/* LONGLONG */
|
247 |
unsigned long long int wcstoull_l(const wchar_t * __restrict, |
248 |
wchar_t ** __restrict, int, locale_t);
|
249 |
int wcwidth_l(wchar_t, locale_t);
|
250 |
int wcswidth_l(const wchar_t *, size_t, locale_t); |
251 |
__END_DECLS |
252 |
#endif /* _POSIX_C_SOURCE || _NETBSD_SOURCE */ |
253 |
|
254 |
#if defined(_NETBSD_SOURCE)
|
255 |
__BEGIN_DECLS |
256 |
wint_t btowc_l(int, locale_t);
|
257 |
size_t mbrlen_l(const char * __restrict, size_t, mbstate_t * __restrict, |
258 |
locale_t); |
259 |
size_t mbrtowc_l(wchar_t * __restrict, const char * __restrict, size_t, |
260 |
mbstate_t * __restrict, locale_t); |
261 |
int mbsinit_l(const mbstate_t *, locale_t); |
262 |
size_t mbsrtowcs_l(wchar_t * __restrict, const char ** __restrict, size_t, |
263 |
mbstate_t * __restrict, locale_t); |
264 |
size_t mbsnrtowcs_l(wchar_t * __restrict, const char ** __restrict, size_t, |
265 |
size_t, mbstate_t * __restrict, locale_t); |
266 |
size_t wcrtomb_l(char * __restrict, wchar_t, mbstate_t * __restrict, locale_t);
|
267 |
size_t wcsrtombs_l(char * __restrict, const wchar_t ** __restrict, size_t, |
268 |
mbstate_t * __restrict, locale_t); |
269 |
size_t wcsnrtombs_l(char * __restrict, const wchar_t ** __restrict, size_t, |
270 |
size_t, mbstate_t * __restrict, locale_t); |
271 |
int wctob_l(wint_t, locale_t);
|
272 |
|
273 |
int fwprintf_l(FILE * __restrict, locale_t, const wchar_t * __restrict, ...); |
274 |
int swprintf_l(wchar_t * __restrict, size_t n, locale_t,
|
275 |
const wchar_t * __restrict, ...);
|
276 |
int vfwprintf_l(FILE * __restrict, locale_t,
|
277 |
const wchar_t * __restrict, __va_list);
|
278 |
int vswprintf_l(wchar_t * __restrict, size_t, locale_t,
|
279 |
const wchar_t * __restrict, __va_list);
|
280 |
int vwprintf_l(locale_t, const wchar_t * __restrict, __va_list); |
281 |
int wprintf_l(locale_t, const wchar_t * __restrict, ...); |
282 |
|
283 |
int fwscanf_l(FILE * __restrict, locale_t, const wchar_t * __restrict, ...); |
284 |
int swscanf_l(const wchar_t * __restrict, locale_t, const wchar_t * |
285 |
__restrict, ...); |
286 |
int wscanf_l(locale_t, const wchar_t * __restrict, ...); |
287 |
int vfwscanf_l(FILE * __restrict, locale_t, const wchar_t * __restrict, |
288 |
__va_list); |
289 |
int vswscanf_l(const wchar_t * __restrict, locale_t, const wchar_t * __restrict, |
290 |
__va_list); |
291 |
int vwscanf_l(locale_t, const wchar_t * __restrict, __va_list); |
292 |
__END_DECLS |
293 |
#endif /* _NETBSD_SOURCE */ |
294 |
|
295 |
#endif /* !_WCHAR_H_ */ |