wchar.h revision 103058
1139825Simp/*- 2139825Simp * Copyright (c)1999 Citrus Project, 344574Sphk * All rights reserved. 475540Sjhay * 544574Sphk * Redistribution and use in source and binary forms, with or without 644574Sphk * modification, are permitted provided that the following conditions 744574Sphk * are met: 844574Sphk * 1. Redistributions of source code must retain the above copyright 944574Sphk * notice, this list of conditions and the following disclaimer. 1044574Sphk * 2. Redistributions in binary form must reproduce the above copyright 1144574Sphk * notice, this list of conditions and the following disclaimer in the 1244574Sphk * documentation and/or other materials provided with the distribution. 1344574Sphk * 1444574Sphk * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 1544574Sphk * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1644574Sphk * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 1744574Sphk * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 1844574Sphk * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 192291Sjkh * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 202291Sjkh * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 212291Sjkh * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 222291Sjkh * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2375540Sjhay * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2465432Sphk * SUCH DAMAGE. 2565432Sphk * 2665432Sphk * $FreeBSD: head/include/wchar.h 103058 2002-09-07 03:38:13Z tjr $ 2744574Sphk */ 2844574Sphk 2944574Sphk/*- 3021101Sjhay * Copyright (c) 1999, 2000 The NetBSD Foundation, Inc. 3121101Sjhay * All rights reserved. 3221101Sjhay * 332291Sjkh * This code is derived from software contributed to The NetBSD Foundation 342291Sjkh * by Julian Coleman. 352291Sjkh * 362291Sjkh * Redistribution and use in source and binary forms, with or without 372291Sjkh * modification, are permitted provided that the following conditions 382291Sjkh * are met: 392291Sjkh * 1. Redistributions of source code must retain the above copyright 402291Sjkh * notice, this list of conditions and the following disclaimer. 412291Sjkh * 2. Redistributions in binary form must reproduce the above copyright 422291Sjkh * notice, this list of conditions and the following disclaimer in the 432291Sjkh * documentation and/or other materials provided with the distribution. 442291Sjkh * 3. All advertising materials mentioning features or use of this software 452291Sjkh * must display the following acknowledgement: 462291Sjkh * This product includes software developed by the NetBSD 4755205Speter * Foundation, Inc. and its contributors. 4855205Speter * 4. Neither the name of The NetBSD Foundation nor the names of its 492291Sjkh * contributors may be used to endorse or promote products derived 502291Sjkh * from this software without specific prior written permission. 512291Sjkh * 522291Sjkh * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 5344574Sphk * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 542291Sjkh * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 552291Sjkh * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 5644574Sphk * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 5744574Sphk * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 5844574Sphk * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 5944574Sphk * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 6044574Sphk * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 6144574Sphk * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 6244574Sphk * POSSIBILITY OF SUCH DAMAGE. 6344574Sphk * 642291Sjkh * $NetBSD: wchar.h,v 1.8 2000/12/22 05:31:42 itojun Exp $ 652291Sjkh */ 662291Sjkh 672291Sjkh#ifndef _WCHAR_H_ 682291Sjkh#define _WCHAR_H_ 692291Sjkh 7044666Sphk#include <sys/cdefs.h> 712291Sjkh#include <sys/_types.h> 7244574Sphk 7344666Sphk#include <stdio.h> 7444574Sphk 7544574Sphk#ifndef NULL 7644574Sphk#define NULL 0 7744574Sphk#endif 782291Sjkh 792291Sjkh#ifndef _MBSTATE_T_DECLARED 802291Sjkhtypedef __mbstate_t mbstate_t; 812291Sjkh#define _MBSTATE_T_DECLARED 822291Sjkh#endif 832291Sjkh 8444574Sphk#ifndef _SIZE_T_DECLARED 852291Sjkhtypedef __size_t size_t; 8644574Sphk#define _SIZE_T_DECLARED 8744666Sphk#endif 8844574Sphk 892291Sjkh#ifndef __cplusplus 9044574Sphk#ifndef _WCHAR_T_DECLARED 9144574Sphktypedef __wchar_t wchar_t; 9244574Sphk#define _WCHAR_T_DECLARED 9344574Sphk#endif 9444574Sphk#endif 952291Sjkh 962291Sjkh#ifndef _WCTYPE_T 9745294Sphktypedef unsigned long wctype_t; 9865432Sphk#define _WCTYPE_T 992291Sjkh#endif 100250889Sed 101250889Sed#ifndef _WINT_T_DECLARED 102250889Sedtypedef __wint_t wint_t; 1032291Sjkh#define _WINT_T_DECLARED 1042291Sjkh#endif 1052291Sjkh 1062291Sjkh#ifndef WEOF 1072291Sjkh#define WEOF ((wint_t)-1) 10844574Sphk#endif 10944574Sphk 11044574Sphk__BEGIN_DECLS 11144574Sphkwint_t btowc(int); 11244574Sphkwint_t fgetwc(FILE *); 11344574Sphkwchar_t * 11444574Sphk fgetws(wchar_t * __restrict, int, FILE * __restrict); 1152291Sjkhwint_t fputwc(wchar_t, FILE *); 11644574Sphkint fputws(const wchar_t * __restrict, FILE * __restrict); 11744574Sphkint fwide(FILE *, int); 11844574Sphkwint_t getwc(FILE *); 11945294Sphkwint_t getwchar(void); 12044574Sphksize_t mbrlen(const char * __restrict, size_t, mbstate_t * __restrict); 12144574Sphksize_t mbrtowc(wchar_t * __restrict, const char * __restrict, size_t, 12250656Sphk mbstate_t * __restrict); 1232291Sjkhint mbsinit(const mbstate_t *); 1242291Sjkhsize_t mbsrtowcs(wchar_t * __restrict, const char ** __restrict, size_t, 1252291Sjkh mbstate_t * __restrict); 12644574Sphkwint_t putwc(wchar_t, FILE *); 1272291Sjkhwint_t putwchar(wchar_t); 12845294Sphkwint_t ungetwc(wint_t, FILE *); 1292291Sjkhsize_t wcrtomb(char * __restrict, wchar_t, mbstate_t * __restrict); 1302291Sjkhwchar_t *wcscat(wchar_t * __restrict, const wchar_t * __restrict); 1312291Sjkhwchar_t *wcschr(const wchar_t *, wchar_t); 1322291Sjkhint wcscmp(const wchar_t *, const wchar_t *); 1332291Sjkhwchar_t *wcscpy(wchar_t * __restrict, const wchar_t * __restrict); 1342291Sjkhsize_t wcscspn(const wchar_t *, const wchar_t *); 13544574Sphksize_t wcslcat(wchar_t *, const wchar_t *, size_t); 13650656Sphksize_t wcslcpy(wchar_t *, const wchar_t *, size_t); 13765432Sphksize_t wcslen(const wchar_t *); 13844574Sphkwchar_t *wcsncat(wchar_t * __restrict, const wchar_t * __restrict, 13944574Sphk size_t); 14044574Sphkint wcsncmp(const wchar_t *, const wchar_t *, size_t); 14144574Sphkwchar_t *wcsncpy(wchar_t * __restrict , const wchar_t * __restrict, size_t); 1422291Sjkhwchar_t *wcspbrk(const wchar_t *, const wchar_t *); 1432291Sjkhwchar_t *wcsrchr(const wchar_t *, wchar_t); 1442291Sjkhsize_t wcsrtombs(char * __restrict, const wchar_t ** __restrict, size_t, 1452291Sjkh mbstate_t * __restrict); 1462291Sjkhsize_t wcsspn(const wchar_t *, const wchar_t *); 1472291Sjkhwchar_t *wcsstr(const wchar_t * __restrict, const wchar_t * __restrict); 1482291Sjkhint wctob(wint_t); 14944574Sphkwchar_t *wmemchr(const wchar_t *, wchar_t, size_t); 1502291Sjkhint wmemcmp(const wchar_t *, const wchar_t *, size_t); 1512291Sjkhwchar_t *wmemcpy(wchar_t * __restrict, const wchar_t * __restrict, size_t); 1522291Sjkhwchar_t *wmemmove(wchar_t *, const wchar_t *, size_t); 15321101Sjhaywchar_t *wmemset(wchar_t *, wchar_t, size_t); 1542291Sjkh 1552291Sjkh#if __XSI_VISIBLE 1562291Sjkhint wcswidth(const wchar_t *, size_t); 1572291Sjkhint wcwidth(wchar_t); 1582291Sjkh#endif 15944574Sphk__END_DECLS 16044574Sphk 16144574Sphk#define getwc(fp) fgetwc(fp) 1622291Sjkh#define getwchar() fgetwc(stdin) 1632291Sjkh#define putwc(wc, fp) fputwc(wc, fp) 16444574Sphk#define putwchar(wc) fputwc(wc, stdout) 1652291Sjkh 1662291Sjkh#endif /* !_WCHAR_H_ */ 1672291Sjkh