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