Annotation of src/include/wchar.h, Revision 1.2
1.2 ! espie 1: /* $OpenBSD: wchar.h,v 1.1 2005/04/14 20:59:10 espie Exp $ */
1.1 espie 2: /* $NetBSD: wchar.h,v 1.16 2003/03/07 07:11:35 tshiozak Exp $ */
3:
4: /*-
5: * Copyright (c)1999 Citrus Project,
6: * All rights reserved.
7: *
8: * Redistribution and use in source and binary forms, with or without
9: * modification, are permitted provided that the following conditions
10: * are met:
11: * 1. Redistributions of source code must retain the above copyright
12: * notice, this list of conditions and the following disclaimer.
13: * 2. Redistributions in binary form must reproduce the above copyright
14: * notice, this list of conditions and the following disclaimer in the
15: * documentation and/or other materials provided with the distribution.
16: *
17: * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20: * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27: * SUCH DAMAGE.
28: */
29:
30: /*-
31: * Copyright (c) 1999, 2000 The NetBSD Foundation, Inc.
32: * All rights reserved.
33: *
34: * This code is derived from software contributed to The NetBSD Foundation
35: * by Julian Coleman.
36: *
37: * Redistribution and use in source and binary forms, with or without
38: * modification, are permitted provided that the following conditions
39: * are met:
40: * 1. Redistributions of source code must retain the above copyright
41: * notice, this list of conditions and the following disclaimer.
42: * 2. Redistributions in binary form must reproduce the above copyright
43: * notice, this list of conditions and the following disclaimer in the
44: * documentation and/or other materials provided with the distribution.
45: * 3. All advertising materials mentioning features or use of this software
46: * must display the following acknowledgement:
47: * This product includes software developed by the NetBSD
48: * Foundation, Inc. and its contributors.
49: * 4. Neither the name of The NetBSD Foundation nor the names of its
50: * contributors may be used to endorse or promote products derived
51: * from this software without specific prior written permission.
52: *
53: * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
54: * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
55: * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
56: * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
57: * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
58: * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
59: * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
60: * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
61: * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
62: * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
63: * POSSIBILITY OF SUCH DAMAGE.
64: */
65:
66: #ifndef _WCHAR_H_
67: #define _WCHAR_H_
68:
69: #include <sys/cdefs.h>
70: #include <machine/ansi.h>
71:
72: #ifndef NULL
73: #ifdef __GNUG__
74: #define NULL __null
75: #else
76: #define NULL 0L
77: #endif
78: #endif
79:
80: #include <stdio.h> /* for FILE* */
81:
82: #ifdef _BSD_WCHAR_T_
83: typedef _BSD_WCHAR_T_ wchar_t;
84: #undef _BSD_WCHAR_T_
85: #endif
86:
1.2 ! espie 87: #ifdef _BSD_MBSTATE_T_
! 88: typedef _BSD_MBSTATE_T_ mbstate_t;
! 89: #undef _BSD_MBSTATE_T_
! 90: #endif
! 91:
1.1 espie 92: #ifdef _BSD_WINT_T_
93: typedef _BSD_WINT_T_ wint_t;
94: #undef _BSD_WINT_T_
95: #endif
96:
97: #ifdef _BSD_SIZE_T_
98: typedef _BSD_SIZE_T_ size_t;
99: #undef _BSD_SIZE_T_
100: #endif
101:
102: #ifndef WEOF
103: #define WEOF ((wint_t)-1)
104: #endif
105:
106: __BEGIN_DECLS
1.2 ! espie 107: wint_t btowc(int);
! 108: size_t mbrlen(const char * __restrict, size_t, mbstate_t * __restrict);
! 109: size_t mbrtowc(wchar_t * __restrict, const char * __restrict, size_t,
! 110: mbstate_t * __restrict);
! 111: int mbsinit(const mbstate_t *);
! 112: size_t mbsrtowcs(wchar_t * __restrict, const char ** __restrict, size_t,
! 113: mbstate_t * __restrict);
! 114: size_t wcrtomb(char * __restrict, wchar_t, mbstate_t * __restrict);
1.1 espie 115: wchar_t *wcscat(wchar_t * __restrict, const wchar_t * __restrict);
116: wchar_t *wcschr(const wchar_t *, wchar_t);
117: int wcscmp(const wchar_t *, const wchar_t *);
118: int wcscoll(const wchar_t *, const wchar_t *);
119: wchar_t *wcscpy(wchar_t * __restrict, const wchar_t * __restrict);
120: size_t wcscspn(const wchar_t *, const wchar_t *);
121: size_t wcslen(const wchar_t *);
122: wchar_t *wcsncat(wchar_t * __restrict, const wchar_t * __restrict,
123: size_t);
124: int wcsncmp(const wchar_t *, const wchar_t *, size_t);
125: wchar_t *wcsncpy(wchar_t * __restrict , const wchar_t * __restrict,
126: size_t);
127: wchar_t *wcspbrk(const wchar_t *, const wchar_t *);
128: wchar_t *wcsrchr(const wchar_t *, wchar_t);
1.2 ! espie 129: size_t wcsrtombs(char * __restrict, const wchar_t ** __restrict, size_t,
! 130: mbstate_t * __restrict);
1.1 espie 131: size_t wcsspn(const wchar_t *, const wchar_t *);
132: wchar_t *wcsstr(const wchar_t *, const wchar_t *);
133: wchar_t *wcstok(wchar_t * __restrict, const wchar_t * __restrict,
134: wchar_t ** __restrict);
135: size_t wcsxfrm(wchar_t *, const wchar_t *, size_t);
136: wchar_t *wcswcs(const wchar_t *, const wchar_t *);
137: wchar_t *wmemchr(const wchar_t *, wchar_t, size_t);
138: int wmemcmp(const wchar_t *, const wchar_t *, size_t);
139: wchar_t *wmemcpy(wchar_t * __restrict, const wchar_t * __restrict,
140: size_t);
141: wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t);
142: wchar_t *wmemset(wchar_t *, wchar_t, size_t);
143:
144: size_t wcslcat(wchar_t *, const wchar_t *, size_t);
145: size_t wcslcpy(wchar_t *, const wchar_t *, size_t);
1.2 ! espie 146: int wctob(wint_t);
1.1 espie 147: __END_DECLS
148:
149: #endif /* !_WCHAR_H_ */