1231673Stheraven/*-
2231673Stheraven * Copyright (c) 2011, 2012 The FreeBSD Foundation
3231673Stheraven * All rights reserved.
4231673Stheraven *
5231673Stheraven * Redistribution and use in source and binary forms, with or without
6231673Stheraven * modification, are permitted provided that the following conditions
7231673Stheraven * are met:
8231673Stheraven * 1. Redistributions of source code must retain the above copyright
9231673Stheraven *    notice, this list of conditions and the following disclaimer.
10231673Stheraven * 2. Redistributions in binary form must reproduce the above copyright
11231673Stheraven *    notice, this list of conditions and the following disclaimer in the
12231673Stheraven *    documentation and/or other materials provided with the distribution.
13231673Stheraven *
14231673Stheraven * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15231673Stheraven * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16231673Stheraven * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17231673Stheraven * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18231673Stheraven * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19231673Stheraven * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20231673Stheraven * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21231673Stheraven * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22231673Stheraven * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23231673Stheraven * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24231673Stheraven * SUCH DAMAGE.
25231673Stheraven *
26231673Stheraven * $FreeBSD$
27231673Stheraven */
28231673Stheraven
29231673Stheraven#ifndef _LOCALE_T_DEFINED
30231673Stheraven#define _LOCALE_T_DEFINED
31231673Stheraventypedef struct	_xlocale *locale_t;
32231673Stheraven#endif
33231673Stheraven
34231673Stheraven/*
35231673Stheraven * This file is included from both string.h and xlocale.h.  We need to expose
36231673Stheraven * the declarations unconditionally if we are included from xlocale.h, but only
37231673Stheraven * if we are in POSIX2008 mode if included from string.h.
38231673Stheraven */
39231673Stheraven
40231673Stheraven#ifndef _XLOCALE_STRING1_H
41231673Stheraven#define _XLOCALE_STRING1_H
42231673Stheraven
43231673Stheraven/*
44231673Stheraven * POSIX2008 functions
45231673Stheraven */
46231673Stheravenint	 strcoll_l(const char *, const char *, locale_t);
47231673Stheravensize_t	 strxfrm_l(char *, const char *, size_t, locale_t);
48231673Stheraven#endif /* _XLOCALE_STRING1_H */
49231673Stheraven
50231673Stheraven/*
51231673Stheraven * xlocale extensions
52231673Stheraven */
53231673Stheraven#ifdef _XLOCALE_H_
54231673Stheraven#ifndef _XLOCALE_STRING2_H
55231673Stheraven#define _XLOCALE_STRING2_H
56231673Stheravenint	 strcasecmp_l(const char *, const char *, locale_t);
57231673Stheravenchar	*strcasestr_l(const char *, const char *, locale_t);
58231673Stheravenint	 strncasecmp_l(const char *, const char *, size_t, locale_t);
59231673Stheraven
60231673Stheraven#endif /* _XLOCALE_STRING2_H */
61231673Stheraven#endif /* _XLOCALE_H_ */
62