Annotation of src/include/wchar.h, Revision 1.19
1.19 ! itojun 1: /* $NetBSD: wchar.h,v 1.18 2003/04/28 23:16:15 bjh21 Exp $ */
1.2 itojun 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: */
1.1 kleink 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: * 3. All advertising materials mentioning features or use of this software
45: * must display the following acknowledgement:
46: * This product includes software developed by the NetBSD
47: * Foundation, Inc. and its contributors.
48: * 4. Neither the name of The NetBSD Foundation nor the names of its
49: * contributors may be used to endorse or promote products derived
50: * from this software without specific prior written permission.
51: *
52: * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
53: * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
54: * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
55: * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
56: * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
57: * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
58: * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
59: * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
60: * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
61: * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
62: * POSSIBILITY OF SUCH DAMAGE.
63: */
64:
65: #ifndef _WCHAR_H_
66: #define _WCHAR_H_
67:
1.2 itojun 68: #include <sys/cdefs.h>
1.18 bjh21 69: #include <sys/featuretest.h>
1.1 kleink 70: #include <machine/ansi.h>
1.3 itojun 71: #include <sys/null.h>
1.1 kleink 72:
1.11 yamt 73: #include <stdio.h> /* for FILE* */
74:
1.1 kleink 75: #ifdef _BSD_WCHAR_T_
76: typedef _BSD_WCHAR_T_ wchar_t;
77: #undef _BSD_WCHAR_T_
78: #endif
79:
1.5 itojun 80: #ifdef _BSD_MBSTATE_T_
81: typedef _BSD_MBSTATE_T_ mbstate_t;
82: #undef _BSD_MBSTATE_T_
83: #endif
84:
1.1 kleink 85: #ifdef _BSD_WINT_T_
86: typedef _BSD_WINT_T_ wint_t;
87: #undef _BSD_WINT_T_
88: #endif
89:
90: #ifdef _BSD_SIZE_T_
91: typedef _BSD_SIZE_T_ size_t;
92: #undef _BSD_SIZE_T_
93: #endif
1.2 itojun 94:
1.4 itojun 95: #ifndef WEOF
96: #define WEOF ((wint_t)-1)
97: #endif
98:
1.11 yamt 99: #define getwc(f) fgetwc(f)
100: #define getwchar() getwc(stdin)
101: #define putwc(wc, f) fputwc((wc), (f))
102: #define putwchar(wc) putwc((wc), stdout)
103:
1.2 itojun 104: __BEGIN_DECLS
1.14 tshiozak 105: wint_t btowc __P((int));
1.9 kleink 106: size_t mbrlen __P((const char * __restrict, size_t, mbstate_t * __restrict));
107: size_t mbrtowc __P((wchar_t * __restrict, const char * __restrict, size_t,
108: mbstate_t * __restrict));
1.6 itojun 109: int mbsinit __P((const mbstate_t *));
1.9 kleink 110: size_t mbsrtowcs __P((wchar_t * __restrict, const char ** __restrict, size_t,
111: mbstate_t * __restrict));
112: size_t wcrtomb __P((char * __restrict, wchar_t, mbstate_t * __restrict));
113: wchar_t *wcscat __P((wchar_t * __restrict, const wchar_t * __restrict));
1.4 itojun 114: wchar_t *wcschr __P((const wchar_t *, wchar_t));
115: int wcscmp __P((const wchar_t *, const wchar_t *));
1.13 tshiozak 116: int wcscoll __P((const wchar_t *, const wchar_t *));
1.9 kleink 117: wchar_t *wcscpy __P((wchar_t * __restrict, const wchar_t * __restrict));
1.4 itojun 118: size_t wcscspn __P((const wchar_t *, const wchar_t *));
119: size_t wcslen __P((const wchar_t *));
1.9 kleink 120: wchar_t *wcsncat __P((wchar_t * __restrict, const wchar_t * __restrict,
121: size_t));
1.4 itojun 122: int wcsncmp __P((const wchar_t *, const wchar_t *, size_t));
1.9 kleink 123: wchar_t *wcsncpy __P((wchar_t * __restrict , const wchar_t * __restrict,
124: size_t));
1.4 itojun 125: wchar_t *wcspbrk __P((const wchar_t *, const wchar_t *));
126: wchar_t *wcsrchr __P((const wchar_t *, wchar_t));
1.9 kleink 127: size_t wcsrtombs __P((char * __restrict, const wchar_t ** __restrict, size_t,
128: mbstate_t * __restrict));
1.4 itojun 129: size_t wcsspn __P((const wchar_t *, const wchar_t *));
130: wchar_t *wcsstr __P((const wchar_t *, const wchar_t *));
1.15 tshiozak 131: wchar_t *wcstok __P((wchar_t * __restrict, const wchar_t * __restrict,
132: wchar_t ** __restrict));
1.13 tshiozak 133: size_t wcsxfrm __P((wchar_t *, const wchar_t *, size_t));
1.15 tshiozak 134: wchar_t *wcswcs __P((const wchar_t *, const wchar_t *));
1.2 itojun 135: wchar_t *wmemchr __P((const wchar_t *, wchar_t, size_t));
136: int wmemcmp __P((const wchar_t *, const wchar_t *, size_t));
1.9 kleink 137: wchar_t *wmemcpy __P((wchar_t * __restrict, const wchar_t * __restrict,
138: size_t));
1.2 itojun 139: wchar_t *wmemmove __P((wchar_t *, const wchar_t *, size_t));
140: wchar_t *wmemset __P((wchar_t *, wchar_t, size_t));
1.7 itojun 141:
142: size_t wcslcat __P((wchar_t *, const wchar_t *, size_t));
143: size_t wcslcpy __P((wchar_t *, const wchar_t *, size_t));
1.8 itojun 144: int wcswidth __P((const wchar_t *, size_t));
1.14 tshiozak 145: int wctob __P((wint_t));
1.8 itojun 146: int wcwidth __P((wchar_t));
1.10 yamt 147:
1.17 tshiozak 148: unsigned long int wcstoul __P((const wchar_t * __restrict,
1.19 ! itojun 149: wchar_t ** __restrict, int));
1.17 tshiozak 150: long int wcstol __P((const wchar_t * __restrict,
1.19 ! itojun 151: wchar_t ** __restrict, int));
1.10 yamt 152: double wcstod __P((const wchar_t * __restrict, wchar_t ** __restrict));
1.17 tshiozak 153:
1.18 bjh21 154: #if defined(_ISOC99_SOURCE) || (__STDC_VERSION__ - 0) > 199901L || \
155: defined(_NETBSD_SOURCE)
1.17 tshiozak 156: /* LONGLONG */
157: long long int wcstoll __P((const wchar_t * __restrict,
1.19 ! itojun 158: wchar_t ** __restrict, int));
1.17 tshiozak 159: /* LONGLONG */
160: unsigned long long int wcstoull __P((const wchar_t * __restrict,
1.19 ! itojun 161: wchar_t ** __restrict, int));
1.17 tshiozak 162: #endif
1.11 yamt 163:
164: wint_t ungetwc __P((wint_t, FILE *));
165: wint_t fgetwc __P((FILE *));
1.16 tshiozak 166: wchar_t *fgetws __P((wchar_t * __restrict, int, FILE * __restrict));
1.11 yamt 167: wint_t getwc __P((FILE *));
168: wint_t getwchar __P((void));
1.12 yamt 169: wint_t fputwc __P((wchar_t, FILE *));
1.16 tshiozak 170: int fputws __P((const wchar_t * __restrict, FILE * __restrict));
1.12 yamt 171: wint_t putwc __P((wchar_t, FILE *));
172: wint_t putwchar __P((wchar_t));
1.11 yamt 173:
174: int fwide __P((FILE *, int));
1.2 itojun 175: __END_DECLS
1.1 kleink 176:
177: #endif /* !_WCHAR_H_ */
CVSweb <webmaster@jp.NetBSD.org>