GNU Libidn is an implementation of the Stringprep, Punycode and
IDNA specifications defined by the IETF Internationalized Domain
Names (IDN) working group, used for internationalized domain names.
The library contains a generic Stringprep implementation that does
Unicode 3.2 NFKC normalization, mapping and prohibitation of
characters, and bidirectional character handling. Profiles for
Nameprep, iSCSI, SASL and XMPP are included. Punycode and ASCII
Compatible Encoding (ACE) via IDNA are supported. A mechanism to
define Top-Level Domain (TLD) specific validation tables, and to
compare strings against those tables, is included. Default tables
for some TLDs are also included.
Fixed a bug in table processing code to prohibit control
characters. The problem was that the code used a code point of 0 to
indicate end of table, but if (as for table C.2.1) a range starts
with 0, this logic would fail. The end-of-table test is now that
both the start and end code points of the range is 0. Table C.2.1
is responsible for prohibiting non-ASCII control characters, i.e.
ASCII 0-31 and 127. Before, libidn silently accepted such strings
A few test vectors for SASLprep were added.
The pkg-config script no longer include a -R parameter.
More translations. Added Dutch (by Elros Cyriatan), and German
(by Roland Illig).
API and ABI is backwards compatible with the previous