source: psi/trunk/iris/libidn/internal.h@ 133

Last change on this file since 133 was 2, checked in by dmik, 19 years ago

Imported original Psi 0.10 sources from Affinix

File size: 4.4 KB
Line 
1/* internal.h Internal header file for libidn.
2 * Copyright (C) 2002, 2003 Simon Josefsson
3 *
4 * This file is part of GNU Libidn.
5 *
6 * GNU Libidn is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * GNU Libidn is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with GNU Libidn; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 *
20 */
21
22#ifndef _INTERNAL_H
23#define _INTERNAL_H
24
25#define STDC_HEADERS 1
26
27#ifdef _LIBC
28
29# include <stdio.h>
30# include <stdlib.h>
31# include <string.h>
32# include <errno.h>
33# include <string.h>
34
35//# define HAVE_ICONV 1
36//# define LOCALE_WORKS 1
37//# define ICONV_CONST
38
39#else /* _LIBC */
40
41# if HAVE_CONFIG_H
42# include "config.h"
43# endif
44
45# if STDC_HEADERS
46# include <stdio.h>
47# include <stdlib.h>
48# include <stdarg.h>
49# include <ctype.h>
50# include <string.h>
51# endif
52
53# if HAVE_UNISTD_H
54# include <unistd.h>
55# endif
56
57# if HAVE_ERRNO_H
58# include <errno.h>
59# endif
60
61# if defined(WITH_DMALLOC) && WITH_DMALLOC
62# include <dmalloc.h>
63# endif
64
65#endif /* _LIBC */
66
67#include "stringprep.h"
68#include "punycode.h"
69#include "idna.h"
70
71/*! \mainpage GNU Internationalized Domain Name Library
72 *
73 * \section intro Introduction
74 *
75 * GNU Libidn is an implementation of the Stringprep, Punycode and IDNA
76 * specifications defined by the IETF Internationalized Domain Names
77 * (IDN) working group, used for internationalized domain names. The
78 * package is available under the GNU Lesser General Public License.
79 *
80 * The library contains a generic Stringprep implementation that does
81 * Unicode 3.2 NFKC normalization, mapping and prohibitation of
82 * characters, and bidirectional character handling. Profiles for iSCSI,
83 * Kerberos 5, Nameprep, SASL and XMPP are included. Punycode and ASCII
84 * Compatible Encoding (ACE) via IDNA are supported.
85 *
86 * The Stringprep API consists of two main functions, one for converting
87 * data from the system's native representation into UTF-8, and one
88 * function to perform the Stringprep processing. Adding a new
89 * Stringprep profile for your application within the API is
90 * straightforward. The Punycode API consists of one encoding function
91 * and one decoding function. The IDNA API consists of the ToASCII and
92 * ToUnicode functions, as well as an high-level interface for converting
93 * entire domain names to and from the ACE encoded form.
94 *
95 * The library is used by, e.g., GNU SASL and Shishi to process user
96 * names and passwords. Libidn can be built into GNU Libc to enable a
97 * new system-wide getaddrinfo() flag for IDN processing.
98 *
99 * Libidn is developed for the GNU/Linux system, but runs on over 20 Unix
100 * platforms (including Solaris, IRIX, AIX, and Tru64) and Windows.
101 * Libidn is written in C and (parts of) the API is accessible from C,
102 * C++, Emacs Lisp, Python and Java.
103 *
104 * The project web page:\n
105 * http://www.gnu.org/software/libidn/
106 *
107 * The software archive:\n
108 * ftp://alpha.gnu.org/pub/gnu/libidn/
109 *
110 * For more information see:\n
111 * http://www.ietf.org/html.charters/idn-charter.html\n
112 * http://www.ietf.org/rfc/rfc3454.txt (stringprep specification)\n
113 * http://www.ietf.org/rfc/rfc3490.txt (idna specification)\n
114 * http://www.ietf.org/rfc/rfc3491.txt (nameprep specification)\n
115 * http://www.ietf.org/rfc/rfc3492.txt (punycode specification)\n
116 * http://www.ietf.org/internet-drafts/draft-ietf-ips-iscsi-string-prep-04.txt\n
117 * http://www.ietf.org/internet-drafts/draft-ietf-krb-wg-utf8-profile-01.txt\n
118 * http://www.ietf.org/internet-drafts/draft-ietf-sasl-anon-00.txt\n
119 * http://www.ietf.org/internet-drafts/draft-ietf-sasl-saslprep-00.txt\n
120 * http://www.ietf.org/internet-drafts/draft-ietf-xmpp-nodeprep-01.txt\n
121 * http://www.ietf.org/internet-drafts/draft-ietf-xmpp-resourceprep-01.txt\n
122 *
123 * Further information and paid contract development:\n
124 * Simon Josefsson <simon@josefsson.org>
125 *
126 * \section examples Examples
127 *
128 * \include example.c
129 * \include example3.c
130 * \include example4.c
131 */
132
133#endif /* _INTERNAL_H */
Note: See TracBrowser for help on using the repository browser.