libidn: Header
1
1 2.1 Header
1 ==========
1
1 The library contains a few independent parts, and each part export the
1 interfaces (data types and functions) in a header file. You must
1 include the appropriate header files in all programs using the library,
1 either directly or through some other header file, like this:
1
1 #include <stringprep.h>
1
1 The header files and the functions they define are categorized as
1 follows:
1
1 stringprep.h
1
1 The low-level stringprep API entry point. For IDN applications,
1 this is usually invoked via IDNA. Some applications, specifically
1 non-IDN ones, may want to prepare strings directly though, and
1 should include this header file.
1
1 The name space of the stringprep part of Libidn is ‘stringprep*’
1 for function names, ‘Stringprep*’ for data types and ‘STRINGPREP_*’
1 for other symbols. In addition, ‘_stringprep*’ is reserved for
1 internal use and should never be used by applications.
1
1 punycode.h
1
1 The entry point to Punycode encoding and decoding functions.
1 Normally punycode is used via the idna.h interface, but some
1 application may want to perform raw punycode operations.
1
1 The name space of the punycode part of Libidn is ‘punycode_*’ for
1 function names, ‘Punycode*’ for data types and ‘PUNYCODE_*’ for
1 other symbols. In addition, ‘_punycode*’ is reserved for internal
1 use and should never be used by applications.
1 idna.h
1
1 The entry point to the IDNA functions. This is the normal entry
1 point for applications that need IDN functionality.
1
1 The name space of the IDNA part of Libidn is ‘idna_*’ for function
1 names, ‘Idna*’ for data types and ‘IDNA_*’ for other symbols. In
1 addition, ‘_idna*’ is reserved for internal use and should never be
1 used by applications.
1
1 tld.h
1
1 The entry point to the TLD functions. Normal applications are not
1 expected to need this functionality, but it is present for
1 applications that are used by TLDs to validate customer input.
1
1 The name space of the TLD part of Libidn is ‘tld_*’ for function
1 names, ‘Tld_*’ for data types and ‘TLD_*’ for other symbols. In
1 addition, ‘_tld*’ is reserved for internal use and should never be
1 used by applications.
1
1 pr29.h
1
1 The entry point to the PR29 functions. These functions are used to
1 detect “problem sequences” (⇒PR29 Functions), mostly for use
1 in security critical applications.
1
1 The name space of the PR29 part of Libidn is ‘pr29_*’ for function
1 names, ‘Pr29_*’ for data types and ‘PR29_*’ for other symbols. In
1 addition, ‘_pr29*’ is reserved for internal use and should never be
1 used by applications.
1
1 idn-free.h
1
11 The entry point to the Windows memory de-allocation function (⇒
Memory handling under Windows). It contains only one function
1 ‘idn_free’.
1
1 All header files defined and use the symbol ‘IDNAPI’ to decorate the
1 API functions.
1