1/*	$NetBSD: unormalize.h,v 1.2 2011/02/16 03:46:56 christos Exp $	*/
2
3/* Id: unormalize.h,v 1.1 2003/06/04 00:25:44 marka Exp  */
4/*
5 * Copyright (c) 2000,2001 Japan Network Information Center.
6 * All rights reserved.
7 *
8 * By using this file, you agree to the terms and conditions set forth bellow.
9 *
10 * 			LICENSE TERMS AND CONDITIONS
11 *
12 * The following License Terms and Conditions apply, unless a different
13 * license is obtained from Japan Network Information Center ("JPNIC"),
14 * a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda,
15 * Chiyoda-ku, Tokyo 101-0047, Japan.
16 *
17 * 1. Use, Modification and Redistribution (including distribution of any
18 *    modified or derived work) in source and/or binary forms is permitted
19 *    under this License Terms and Conditions.
20 *
21 * 2. Redistribution of source code must retain the copyright notices as they
22 *    appear in each source code file, this License Terms and Conditions.
23 *
24 * 3. Redistribution in binary form must reproduce the Copyright Notice,
25 *    this License Terms and Conditions, in the documentation and/or other
26 *    materials provided with the distribution.  For the purposes of binary
27 *    distribution the "Copyright Notice" refers to the following language:
28 *    "Copyright (c) 2000-2002 Japan Network Information Center.  All rights reserved."
29 *
30 * 4. The name of JPNIC may not be used to endorse or promote products
31 *    derived from this Software without specific prior written approval of
32 *    JPNIC.
33 *
34 * 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC
35 *    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
36 *    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
37 *    PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL JPNIC BE LIABLE
38 *    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
39 *    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
40 *    SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
41 *    BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
42 *    WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
43 *    OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
44 *    ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
45 */
46
47#ifndef IDN_UNORMALIZE_H
48#define IDN_UNORMALIZE_H 1
49
50#ifdef __cplusplus
51extern "C" {
52#endif
53
54/*
55 * Unicode Normalizations.
56 *
57 * Perform 4 normalizations defined by 'Unicode Normalization Forms'
58 * (http://www.unicode.org/unicode/reports/tr15)
59 *
60 * All of the functions use UCS4 encoding for input/output.
61 */
62
63#include <idn/result.h>
64#include <idn/unicode.h>
65
66/*
67 * Perform Unicode Normalication Form C and KC.
68 *
69 * They take NUL-terminated UCS4 encoded string 'from', perform
70 * the normalization specified by 'version', put the result
71 * (also a NUL-terminated UCS4 encoded string) to 'to', which must be
72 * able to hold at least 'tolen' bytes.
73 *
74 * Returns:
75 *	idn_success		-- ok.
76 *	idn_nomemory		-- malloc failed.
77 * 	idn_buffer_overflow	-- 'tolen' is too small.
78 */
79extern idn_result_t
80idn__unormalize_formkc(idn__unicode_version_t version,
81		       const unsigned long *from, unsigned long *to,
82		       size_t tolen);
83
84#ifdef __cplusplus
85}
86#endif
87
88#endif /* IDN_UNORMALIZE_H */
89