| Apr | MAY | Jun |
| 20 | ||
| 2012 | 2013 | 2014 |
COLLECTED BY
Collection: Alexa Crawls
●About GNU
●Philosophy
●Licenses
●Education
●Downloads
●Documentation
●Help GNU
idna_strerror) to translate from return codes
to human readable text strings.
●2004-06-26: Version 0.5.0 include a
module to detect "problem sequences" for normalization as
discussed in
PR-29.
●2004-06-01: Version 0.4.8 include a native Java port, thanks to
Oliver Hitz.
●2004-04-30: People interested in the specifications behind
libidn may be interested
in a proposed
change to NFKC by the Unicode Consortium. I have
posted a message to the IDN WG
mailing list asking for opinions on this, but apparently the
list moderator is ignoring it.
●2004-03-27: Recently a
patch
to GNU Libc has
been incorporated, extending the getaddrinfo API
based on my writeup. The API is
being standardized.
●2004-02-28:
A NetBSD
package exists.
●2004-02-28: Version 0.4.0 includes an experimental API for
(parts of) the TLD functionality described in
draft-hoffman-idn-reg.
●2004-01-30: A Perl module
Net::LibIDN that provide Perl bindings for Libidn is
available, thanks to Thomas Jacob. The page also include a
patch that add TLD specific awareness to Libidn.
●2004-01-06: A
FreeBSD ports package is available, thanks to Kirill
Ponomarew.
●2004-01-01: Savannah had problems last month, and still isn't
operating fully. CVS has been moved to a private machine, a
read-only mirror of it will hopefully be available via Savannah in
the future.
●2003-10-29: A project with the goal of providing
PHP bindings of the Libidn
API has been started by Turbo Fredriksson.
●2003-10-11: Precompiled binaries for Mandrake 9.2
available built as part of glibc, and
as a
RPM package, thanks to Oden Eriksson.
●2003-10-02: Version 0.3.1 fixes all problems discovered during
IDNConnect.
●2003-06-26: Precompiled binaries for Cygwin available from
http://anfaenger.de/cygwin/libidn/, thanks to Gerrit
P. Haase.
●2003-02-26: Version 0.1.11 includes a
command line tool and a
Emacs Lisp
interface.
●2003-02-21: Debian
includes
libidn, thanks to Ryan M. Golbeck.
●2003-02-12: Version 0.1.7 uses
official IDNA ACE prefix 'xn--'.
●2003-01-28: Version 0.1.5 can be built as an add-on to
GNU Libc, available
are
detailed instructions and
example code demonstrating the new getaddrinfo() API.
●2003-01-08: Added a simple
patch demonstrating support for IDN in the
GNU
InetUtils ping utility.
●2003-01-05: Version 0.1.0 released with Punycode and IDNA.
●2003-01-03: Libidn is an official GNU project.
●2002-12-26:
Moved
project to savannah. Initiated renaming of library from
"libstringprep" to "libidn" as the next release will implement
Punycode and IDNA too.
●2002-12-13: Version 0.0.8 is ported to 20+ platforms, including
Microsoft Windows.
●2002-11-07: Version 0.0.2 is now used by
GNU SASL.
●2002-11-05: Initial release of version 0.0.0.
Information on what is new in the library itself is found in
the NEWS
file (live version).
$ git clone git://git.savannah.gnu.org/libidn.gitThe online git interface is available. Notifications of each commit is sent to libidn-commit@gnu.org. If you have trouble using git, you may download a daily snapshot. The snapshots are prepared similar to regular releases, i.e., you simply build them using
./configure && make.
Build logs from building the package, where you can also contribute
a build system for your own platform, are available from
the Libidn autobuild
page.
For every release, we publish cyclomatic code
complexity charts for the package. There is
also self-test code coverage charts
available. Finally, clang-analyzer
output is also available.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*
* Compiling using libtool and pkg-config is recommended:
*
* $ libtool cc -o example example.c `pkg-config --cflags --libs libidn`
* $ ./example
* Input string encoded as `ISO-8859-1': ª
* Before locale2utf8 (length 2): aa 0a
* Before stringprep (length 3): c2 aa 0a
* After stringprep (length 2): 61 0a
* $
*
*/
int main(int argc, char *argv[])
{
char buf[BUFSIZ];
char *p;
int rc, i;
printf("Input string encoded as `%s': ",
stringprep_locale_charset ());
fflush(stdout);
fgets(buf, BUFSIZ, stdin);
printf("Before locale2utf8 (length %d): ", strlen(buf));
for (i=0; i < strlen(buf); i++)
printf("%02x ", buf[i] & 0xFF);
printf("\n");
p = stringprep_locale_to_utf8 (buf);
if (p)
{
strcpy(buf, p);
free(p);
}
else
printf("Could not convert string to UTF-8, continuing anyway...\n");
printf("Before stringprep (length %d): ", strlen(buf));
for (i=0; i < strlen(buf); i++)
printf("%02x ", buf[i] & 0xFF);
printf("\n");
rc = stringprep(buf, BUFSIZ, 0, stringprep_nameprep);
if (rc != STRINGPREP_OK)
printf("Stringprep failed with rc %d...\n", rc);
else
{
printf("After stringprep (length %d): ", strlen(buf));
for (i=0; i < strlen(buf); i++)
printf("%02x ", buf[i] & 0xFF);
printf("\n");
}
return 0;
}