wchar.h revision 1.1.2.1 1 /*-
2 * Copyright (c)1999 Citrus Project,
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 *
14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 *
26 * $Id: wchar.h,v 1.1.2.1 2000/05/28 22:41:02 minoura Exp $
27 */
28
29 #ifndef _WCHAR_H_
30 #define _WCHAR_H_
31
32 #undef __IN_WCHAR_H
33 #define __IN_WCHAR_H
34 #include <wctype.h>
35 #undef __IN_WCHAR_H
36
37 #ifdef _BSD_SIZE_T_
38 typedef _BSD_SIZE_T_ size_t;
39 #undef _BSD_SIZE_T_
40 #endif
41
42 #ifdef _BSD_WCHAR_T_
43 typedef _BSD_WCHAR_T_ wchar_t;
44 #undef _BSD_WCHAR_T_
45 #endif
46
47 #ifdef _BSD_MBSTATE_T_
48 typedef _BSD_MBSTATE_T_ mbstate_t;
49 #undef _BSD_MBSTATE_T_
50 #endif
51
52 #ifndef WCHAR_MAX
53 #define WCHAR_MAX (2147483647)
54 #endif
55
56 #ifndef WCHAR_MIN
57 #define WCHAR_MIN (0)
58 #endif
59
60 #ifndef NULL
61 #define NULL (0)
62 #endif
63
64 __BEGIN_DECLS
65 #if 0 /* XXX: not implemented */
66 /*
67 wint_t btowc __P((int));
68 int fwprintf __P((FILE *, const wchar_t *, ...));
69 int fwscanf __P((FILE *, const wchar_t *, ...));
70 */
71 #endif /* XXX: not implemented */
72 #if 0
73 /* defined in wctype.h commonly */
74 /*
75 int iswalnum __P((wint_t));
76 int iswalpha __P((wint_t));
77 int iswcntrl __P((wint_t));
78 int iswdigit __P((wint_t));
79 int iswgraph __P((wint_t));
80 int iswlower __P((wint_t));
81 int iswprint __P((wint_t));
82 int iswpunct __P((wint_t));
83 int iswspace __P((wint_t));
84 int iswupper __P((wint_t));
85 int iswxdigit __P((wint_t));
86 */
87 #endif
88 #if 0 /* XXX: not implemented */
89 /*
90 int iswctype __P((wint_t, wctype_t));
91 wint_t fgetwc __P((FILE *));
92 wchar_t *fgetws __P((wchar_t *, int, FILE *));
93 wint_t fputwc __P((wchar_t, FILE *));
94 int fputws __P((const wchar_t *, FILE *));
95 int fwide __P((FILE *, int));
96 wint_t getwc __P((FILE *));
97 wint_t getwchar __P((void));
98 */
99 #endif /* XXX: not implemented */
100 int mbsinit __P((const mbstate_t *));
101 size_t mbrlen __P((const char *, size_t, mbstate_t *));
102 size_t mbrtowc __P((wchar_t *, const char *, size_t,
103 mbstate_t *));
104 size_t mbsrtowcs __P((wchar_t *, const char **, size_t,
105 mbstate_t *));
106 #if 0 /* XXX: not implemented */
107 /*
108 wint_t putwc __P((wchar_t, FILE *));
109 wint_t putwchar __P((wchar_t));
110 int swprintf __P((wchar_t *, size_t, const wchar_t *, ...));
111 int swscanf __P((const wchar_t *, const wchar_t *, ...));
112 */
113 #endif /* XXX: not implemented */
114 #if 0 /* defined in wctype.h commonly */
115 /*
116 wint_t towlower __P((wint_t));
117 wint_t towupper __P((wint_t));
118 */
119 #endif
120 #if 0 /* XXX: not implemented */
121 /*
122 wint_t ungetwc __P((wint_t, FILE *));
123 int vfwprintf __P((FILE *, const wchar_t *, va_list));
124 int vwprintf __P((const wchar_t *, va_list));
125 int vswprintf __P((wchar_t *, size_t, const wchar_t *,
126 va_list));
127 */
128 #endif /* XXX: not implemented */
129 size_t wcrtomb __P((char *, wchar_t, mbstate_t *));
130 wchar_t *wcscat __P((wchar_t *, const wchar_t *));
131 wchar_t *wcschr __P((const wchar_t *, wchar_t));
132 int wcscmp __P((const wchar_t *, const wchar_t *));
133 #if 0 /* XXX: not implemented */
134 /*
135 int wcscoll __P((const wchar_t *, const wchar_t *));
136 */
137 #endif /* XXX: not implemented */
138 wchar_t *wcscpy __P((wchar_t *, const wchar_t *));
139 size_t wcscspn __P((const wchar_t *, const wchar_t *));
140 #if 0 /* XXX: not implemented */
141 /*
142 size_t wcsftime __P((wchar_t *, size_t, const wchar_t *,
143 const struct tm *));
144 */
145 #endif /* XXX: not implemented */
146 size_t wcslen __P((const wchar_t *));
147 wchar_t *wcsncat __P((wchar_t *, const wchar_t *, size_t));
148 int wcsncmp __P((const wchar_t *, const wchar_t *,
149 size_t));
150 wchar_t *wcsncpy __P((wchar_t *, const wchar_t *, size_t));
151 wchar_t *wcspbrk __P((const wchar_t *, const wchar_t *));
152 wchar_t *wcsrchr __P((const wchar_t *, wchar_t));
153 size_t wcsrtombs __P((char *, const wchar_t **, size_t,
154 mbstate_t *));
155 size_t wcsspn __P((const wchar_t *, const wchar_t *));
156 wchar_t *wcsstr __P((const wchar_t *, const wchar_t *));
157 #if 0 /* XXX: not implemented */
158 /*
159 double wcstod __P((const wchar_t *, wchar_t **));
160 wchar_t *wcstok __P((wchar_t *, const wchar_t *, wchar_t **));
161 long int wcstol __P((const wchar_t *, wchar_t **, int));
162 unsigned long int wcstoul __P((const wchar_t *, wchar_t **, int));
163 wchar_t *wcswcs __P((const wchar_t *, const wchar_t *));
164 */
165 #endif /* XXX: not implemented */
166 int wcswidth __P((const wchar_t *, size_t));
167 #if 0 /* XXX: not implemented */
168 /*
169 size_t wcsxfrm __P((wchar_t *, const wchar_t *, size_t));
170 int wctob __P((wint_t));
171 wctype_t wctype __P((const char *));
172 */
173 #endif /* XXX: not implemented */
174 int wcwidth __P((wchar_t));
175 wchar_t *wmemchr __P((const wchar_t *, wchar_t, size_t));
176 int wmemcmp __P((const wchar_t *, const wchar_t *,
177 size_t));
178 wchar_t *wmemcpy __P((wchar_t *, const wchar_t *, size_t));
179 wchar_t *wmemmove __P((wchar_t *, const wchar_t *, size_t));
180 wchar_t *wmemset __P((wchar_t *, wchar_t, size_t));
181 #if 0 /* XXX: not implemented */
182 /*
183 int wprintf __P((const wchar_t *, ...));
184 int wscanf __P((const wchar_t *, ...));
185 */
186 #endif /* XXX: not implemented */
187 __END_DECLS
188
189 #if defined(__FreeBSD__)
190 #define wcwidth(c) ((unsigned)__maskrune_w((c), _SWM)>>_SWS)
191 #endif
192
193 #endif
194