wchar.h revision 99640
176633Stshiozak/*-
276633Stshiozak * Copyright (c)1999 Citrus Project,
376633Stshiozak * All rights reserved.
476633Stshiozak *
576633Stshiozak * Redistribution and use in source and binary forms, with or without
676633Stshiozak * modification, are permitted provided that the following conditions
776633Stshiozak * are met:
876633Stshiozak * 1. Redistributions of source code must retain the above copyright
976633Stshiozak *    notice, this list of conditions and the following disclaimer.
1076633Stshiozak * 2. Redistributions in binary form must reproduce the above copyright
1176633Stshiozak *    notice, this list of conditions and the following disclaimer in the
1276633Stshiozak *    documentation and/or other materials provided with the distribution.
1376633Stshiozak *
1476633Stshiozak * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
1576633Stshiozak * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1676633Stshiozak * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1776633Stshiozak * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
1876633Stshiozak * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
1976633Stshiozak * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2076633Stshiozak * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2176633Stshiozak * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2276633Stshiozak * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2376633Stshiozak * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2476633Stshiozak * SUCH DAMAGE.
2576633Stshiozak *
2676633Stshiozak * $FreeBSD: head/include/wchar.h 99640 2002-07-09 05:13:30Z obrien $
2776633Stshiozak */
2876633Stshiozak
2976633Stshiozak/*-
3076633Stshiozak * Copyright (c) 1999, 2000 The NetBSD Foundation, Inc.
3176633Stshiozak * All rights reserved.
3276633Stshiozak *
3376633Stshiozak * This code is derived from software contributed to The NetBSD Foundation
3476633Stshiozak * by Julian Coleman.
3576633Stshiozak *
3676633Stshiozak * Redistribution and use in source and binary forms, with or without
3776633Stshiozak * modification, are permitted provided that the following conditions
3876633Stshiozak * are met:
3976633Stshiozak * 1. Redistributions of source code must retain the above copyright
4076633Stshiozak *    notice, this list of conditions and the following disclaimer.
4176633Stshiozak * 2. Redistributions in binary form must reproduce the above copyright
4276633Stshiozak *    notice, this list of conditions and the following disclaimer in the
4376633Stshiozak *    documentation and/or other materials provided with the distribution.
4476633Stshiozak * 3. All advertising materials mentioning features or use of this software
4576633Stshiozak *    must display the following acknowledgement:
4676633Stshiozak *        This product includes software developed by the NetBSD
4776633Stshiozak *        Foundation, Inc. and its contributors.
4876633Stshiozak * 4. Neither the name of The NetBSD Foundation nor the names of its
4976633Stshiozak *    contributors may be used to endorse or promote products derived
5076633Stshiozak *    from this software without specific prior written permission.
5176633Stshiozak *
5276633Stshiozak * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
5376633Stshiozak * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
5476633Stshiozak * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
5576633Stshiozak * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
5676633Stshiozak * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
5776633Stshiozak * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
5876633Stshiozak * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
5976633Stshiozak * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
6076633Stshiozak * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
6176633Stshiozak * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
6276633Stshiozak * POSSIBILITY OF SUCH DAMAGE.
6379555Sobrien *
6479555Sobrien *	$NetBSD: wchar.h,v 1.8 2000/12/22 05:31:42 itojun Exp $
6576633Stshiozak */
6676633Stshiozak
6776633Stshiozak#ifndef _WCHAR_H_
6876633Stshiozak#define _WCHAR_H_
6976633Stshiozak
7076633Stshiozak#include <sys/cdefs.h>
7176633Stshiozak#include <machine/ansi.h>
7276636Stshiozak#ifndef NULL
7376636Stshiozak#define NULL	0
7476636Stshiozak#endif
7576633Stshiozak
7699640Sobrien#ifndef	__cplusplus
7776633Stshiozak#ifdef	_BSD_WCHAR_T_
7876633Stshiozaktypedef	_BSD_WCHAR_T_	wchar_t;
7976633Stshiozak#undef	_BSD_WCHAR_T_
8076633Stshiozak#endif
8199640Sobrien#endif
8276633Stshiozak
8376633Stshiozak#ifdef	_BSD_MBSTATE_T_
8476633Stshiozaktypedef	_BSD_MBSTATE_T_	mbstate_t;
8576633Stshiozak#undef	_BSD_MBSTATE_T_
8676633Stshiozak#endif
8776633Stshiozak
8876633Stshiozak#ifdef	_BSD_WINT_T_
8976633Stshiozaktypedef	_BSD_WINT_T_	wint_t;
9076633Stshiozak#undef	_BSD_WINT_T_
9176633Stshiozak#endif
9276633Stshiozak
9376633Stshiozak#ifdef	_BSD_SIZE_T_
9476633Stshiozaktypedef	_BSD_SIZE_T_	size_t;
9576633Stshiozak#undef	_BSD_SIZE_T_
9676633Stshiozak#endif
9776633Stshiozak
9876633Stshiozak#ifndef WEOF
9976633Stshiozak#define	WEOF 	((wint_t)-1)
10076633Stshiozak#endif
10176633Stshiozak
10276633Stshiozak__BEGIN_DECLS
10376636Stshiozak#if 0
10476636Stshiozak/* XXX: not implemented */
10593032Simpsize_t	mbrlen(const char * __restrict, size_t, mbstate_t * __restrict);
10693032Simpsize_t	mbrtowc(wchar_t * __restrict, const char * __restrict, size_t,
10793032Simp	    mbstate_t * __restrict);
10893032Simpint	mbsinit(const mbstate_t *);
10993032Simpsize_t	mbsrtowcs(wchar_t * __restrict, const char ** __restrict, size_t,
11093032Simp	    mbstate_t * __restrict);
11193032Simpsize_t	wcrtomb(char * __restrict, wchar_t, mbstate_t * __restrict);
11276636Stshiozak#endif
11393032Simpwchar_t	*wcscat(wchar_t * __restrict, const wchar_t * __restrict);
11493032Simpwchar_t	*wcschr(const wchar_t *, wchar_t);
11593032Simpint	wcscmp(const wchar_t *, const wchar_t *);
11693032Simpwchar_t	*wcscpy(wchar_t * __restrict, const wchar_t * __restrict);
11793032Simpsize_t	wcscspn(const wchar_t *, const wchar_t *);
11893032Simpsize_t	wcslen(const wchar_t *);
11993032Simpwchar_t	*wcsncat(wchar_t * __restrict, const wchar_t * __restrict,
12093032Simp	    size_t);
12193032Simpint	wcsncmp(const wchar_t *, const wchar_t *, size_t);
12293032Simpwchar_t	*wcsncpy(wchar_t * __restrict , const wchar_t * __restrict, size_t);
12393032Simpwchar_t	*wcspbrk(const wchar_t *, const wchar_t *);
12493032Simpwchar_t	*wcsrchr(const wchar_t *, wchar_t);
12576636Stshiozak#if 0
12676636Stshiozak/* XXX: not implemented */
12793032Simpsize_t	wcsrtombs(char * __restrict, const wchar_t ** __restrict, size_t,
12893032Simp	    mbstate_t * __restrict);
12976636Stshiozak#endif
13093032Simpsize_t	wcsspn(const wchar_t *, const wchar_t *);
13193032Simpwchar_t	*wcsstr(const wchar_t *, const wchar_t *);
13293032Simpwchar_t	*wmemchr(const wchar_t *, wchar_t, size_t);
13393032Simpint	wmemcmp(const wchar_t *, const wchar_t *, size_t);
13493032Simpwchar_t	*wmemcpy(wchar_t * __restrict, const wchar_t * __restrict, size_t);
13593032Simpwchar_t	*wmemmove(wchar_t *, const wchar_t *, size_t);
13693032Simpwchar_t	*wmemset(wchar_t *, wchar_t, size_t);
13776633Stshiozak
13893032Simpsize_t	wcslcat(wchar_t *, const wchar_t *, size_t);
13993032Simpsize_t	wcslcpy(wchar_t *, const wchar_t *, size_t);
14076636Stshiozak#if 0
14176636Stshiozak/* XXX: not implemented */
14293032Simpint	wcswidth(const wchar_t *, size_t);
14393032Simpint	wcwidth(wchar_t);
14476636Stshiozak#endif
14576633Stshiozak__END_DECLS
14676633Stshiozak
14776633Stshiozak#endif /* !_WCHAR_H_ */
148