Doc fixes.
[libidn.git] / NEWS
blob9172830d79e2173b12c49ed603104aeb2eeb2097
1 Libidn NEWS -- History of user-visible changes.                 -*- outline -*-
2 Copyright (C) 2002, 2003 Simon Josefsson
3 See the end for copying conditions.
5 * Version 0.3.4 (unreleased)
7 ** DocBook manuals in XML, PDF, PostScript, ASCII and HTML formats included.
9 * Version 0.3.3 (released 2003-10-18)
11 ** Fixed list of Stringprep profiles in 'idn --help' and 'idn.php'.
13 ** Fixed debug information in 'idn'.
15 ** Internal improvements.
16 Leads to reduced heap memory usage.  Simplified inter-dependency among
17 files in lib/* to make it easier to copy them into your project.
19 ** Debugging stringprep profile 'generic' removed.
21 ** Punycode implementation updated to rfc3492bis-00.
23 ** API and ABI is backwards compatible with the previous version.
24 stringprep_4i: NEW.
25 stringprep_4zi: NEW.
26 stringprep: CHANGED. 'profile' is marked as 'const'.
27 stringprep_profile: CHANGED. 'profile' is marked as 'const'.
28 stringprep_generic: REMOVED. Never meant for public use.
30 * Version 0.3.2 (released 2003-10-07)
32 ** SASL ANONYMOUS stringprep profile "trace" added.
33 It is equivalent to the already supported "plain" SASL ANONYMOUS
34 stringprep profile, except for the name.
36 ** API and ABI is backwards compatible with the previous version.
37 The 'in' parameter to stringprep_profile was changed from 'char*' to
38 'const char*'.
40 * Version 0.3.1 (released 2003-10-02)
42 ** Fixed handling of implicit and explicit zero-length root labels in ToASCII.
44 ** Fixed support for Hangul Syllables during Unicode NFKC normalization.
46 ** Fixed Unicode NFKC normalization of (some) BMP code points.
47 This was done by syncing the NFKC code with latest GLIB, and may have
48 fixed other bugs in the earlier versions of the updated functions.
50 ** Added more IDNA test vectors.
52 ** Emacs Lisp IDNA implementation now set the UseSTD3ASCIIRules flag.
53 This is the appropriate setting for mail-related uses of IDNA.
55 ** API and ABI is backwards compatible with the previous version.
57 * Version 0.3.0 (released 2003-09-23)
59 ** Ported to Mac OS X.
61 ** Gnulib code removed, we now assume a C89 compatible environment.
63 ** Building libidn as a libc add-on now works again.
65 ** Man pages for all public API functions are included.
67 ** Fixed bug in SASLprep profile.
69 ** API and ABI is NOT backwards compatible with the previous version.
70 All previously labeled (since 0.1.x) obsolete functions have been dropped.
71 The use of 'enum' types instead of 'int' added in 0.2.3 reverted, it
72 confused documentation generators and wasn't all that common practice.
74 * Version 0.2.3 (released 2003-08-26)
76 ** Example 4 was the same as example 3, now changed to demo ToUnicode.
78 ** Documentation improvements.
80 ** Prototype cleanups.
81 The proper enum types (Stringprep_rc, Idna_rc, etc) are now used in
82 several places where plain int where used before.  String lengths are
83 handled by (s)size_t instead of int.
85 ** API and ABI is backwards compatible with the previous version.
87 * Version 0.2.2 (released 2003-08-13)
89 ** Fixed problem with strings longer than 4GB in punycode functions.
90 The punycode code cannot handle strings longer than 4GB.  The code now
91 return PUNYCODE_BAD_INPUT on too long input, instead of failing in an
92 unknown way.
94 ** The "idn --idna-to-unicode" command now output locale encoded strings.
96 ** Build fixes, bug fixes.
98 ** API and ABI is backwards compatible with the previous version.
100 * Version 0.2.1 (released 2003-07-04)
102 ** Don't reject zero-length trailing labels as in, e.g., "www.example.org.".
103 The IDNA RFC is not clear on this topic, zero-length labels in general
104 are forbidden by the ToASCII algorithm in section 4.1 step 8, but the
105 terminology section define, inside a parenthesis, that the zero-length
106 root label is in fact not considered a label at all in IDNA.
108 ** Bug fixes.
110 ** API and ABI is backwards compatible with the previous version.
112 * Version 0.2.0 (released 2003-06-19)
114 ** Unicode code point data is now uint32_t, defined in "idn-int.h".
115 A header file "idn-int.h" is generated and installed to make sure the
116 "uint32_t" data type is available on all platforms.  The reason for
117 this change is that on 64-bit platforms, the application was required
118 to convert 32 bit integers (which is how Unicode code points are
119 typically represented) into 64 bit integers before calling libidn
120 functions.
122 ** New idna_*() functions have improved flags handling.
123 The allowunassigned and usestd3asciirules parameters were collapsed
124 into a flags parameter, that can take on the IDNA_ALLOW_UNASSIGNED and
125 IDNA_USE_STD3_ASCII_RULES values.  This allows for easier extensions
126 to support, e.g., Unicode 4.0 or RFC 952 ASCII rules checking.  Note
127 that the old entry points are unmodified (in this regard), and new
128 entry points with this modification were added.
130 ** The manual was moved into a separate directory doc/.
132 ** Bugfixes.
134 ** API and ABI is not backwards compatible.
135 In punycode.h and stringprep.h the "unsigned long" data type was
136 changed into "uint32_t", which cause a API and ABI missmatch.  For
137 idna.h, the old entry points that used "unsigned long" still exist,
138 and new entry points that uses "uint32_t" was added.  To update your
139 application, you probably only need to change "unsigned long" to
140 "uint32_t".  As a result of these changes, the shared object version
141 has been increased.
143 * Version 0.1.15 (released 2003-06-07)
145 ** Bugfixes.
147 ** API and ABI is backwards compatible with the previous version.
149 * Version 0.1.14 (released 2003-05-10)
151 ** Experimental documentation generation in contrib/doxygen/.
152 Simply invoke "doxygen" in that directory and it should build the
153 documentation.
155 ** Lisp API bug fixes.
157 ** API and ABI is backwards compatible with the previous version.
159 * Version 0.1.13 (released 2003-03-13)
161 ** Unfinished Java *.class files implementing the libidn API.
162 See the contrib/java/ directory.  It is implemented using the Java
163 Native Interface, and light initial testing indicate interoperability
164 between GCJ, IBM's JDK and Sun's JDK.
166 ** Building is now silent when gengetopt is not present.
168 ** Bug fixes.
170 ** API and ABI is backwards compatible with the previous version.
172 * Version 0.1.12 (released 2003-03-06)
174 ** Building libidn doesn't require gengetopt.
175 Warnings are still printed though.  Gengetopt will be replaced by argp
176 eventually.
178 ** Command line tool "idn" supports stringprep too.
180 ** New stringprep API entry point: stringprep_profile().
181 It takes a name of the stringprep profile as an argument instead of
182 the stringprep table structure.
184 ** stringprep_*.h are deprecated and will be removed in the future.
185 All symbols have been moved to stringprep.h.  The reasons are that (1)
186 the files typically only defined one CPP macro and exported one symbol
187 definition, which is wasteful as it generates too much work in the
188 manual, and (2) using one header file for all profiles allows easier
189 access to all stringprep profiles during runtime.  Note that the files
190 are still installed, but they only #include stringprep.h now, for
191 backwards compatibility.
193 ** GNU Libc add-on build instructions updated to GNU Libc 2.3.2.
195 ** SASLprep stringprep profile added.
197 ** An online interface to libidn written in PHP added to contrib/web/.
199 ** API and ABI is backwards compatible with the previous version.
201 * Version 0.1.11 (released 2003-02-26)
203 ** Command line application "idn" is included.
204 A simple wrapper around the library that allows you to invoke punycode
205 encoding/decoding and IDNA ToASCII/ToUnicode on the command line.
207 ** Emacs Lisp interface for punycode and IDNA included.
208 See punycode.el and idna.el.
210 ** API and ABI is backwards compatible with the previous version.
212 * Version 0.1.10 (released 2003-02-21)
214 ** idna_*_to_ace() and idna_*ace_to_*() are deprecated in favor of
215 ** idna_to_ascii_from_*() and idna_to_unicode_*_from_*() respectively.
216 The reason was that the old interfaces did not accept the
217 AllowUnassigned and UseSTD3ASCIIRules flags.  Note that the old
218 functions are not removed, but will be in the future.
220 ** IPS iSCSI stringprep profile added.
222 ** A new contrib/ directory added.
223 Currently it contains a Python interface to Libidn, contributed by
224 Stephane Bortzmeyer.
226 ** idna.h and punycode.h are now installed by "make install".
228 ** API and ABI is backwards compatible with the previous version.
230 * Version 0.1.9 (released 2003-02-20)
232 ** SASL ANONYMOUS "plain" stringprep profile added.
234 ** XMPP nodeprep profile fixed.
236 ** API and ABI is backwards compatible with the previous version.
237 For future releases, the NEWS entry will specifically mention whether
238 the C header API or library ABI backwards compatibility is affected.
240 * Version 0.1.8 (released 2003-02-14)
242 ** Portability fixes.
243 This includes not building the API Reference Manual with GTK-DOC by
244 default, if you want it use configure parameter --enable-gtk-doc after
245 making sure your gtkdoc-mkdb accept the --tmpl-dir parameter.
247 ** The type for string length variables is now (s)size_t.
248 Unfortunately this means binary shared library binary backwards
249 compatible is lost.
251 ** New nameprep test vectors.
253 * Version 0.1.7 (released 2003-02-12)
255 ** Uses official IDNA ACE prefix.
257 * Version 0.1.6 (released 2003-02-11)
259 ** Uses tentative IDNA ACE prefix.
261 ** Added XMPP Node/Resource Identifiers stringprep profiles.
263 ** Fixed prohibited character checks for bidi.
265 * Version 0.1.5 (released 2003-01-28)
267 ** The library can now be built as part of GNU Libc.
268 This is experimental and only tested against GNU Libc version 2.3.1.
269 See the libc/ directory, and libc/README in particular.
271 ** Bug fixes.
273 * Version 0.1.4 (released 2003-01-15)
275 ** Documentation fixes.
277 ** Portability fixes.
279 ** Bug fixes.
281 * Version 0.1.3 (released 2003-01-15)
283 ** Added texinfo manual.
285 * Version 0.1.2 (released 2003-01-08)
287 ** Added high-level IDNA API.
289 ** Added example3.c and example4.c demonstrating the high-level IDNA API.
291 * Version 0.1.1 (released 2003-01-08)
293 ** Added documentation using GTK-DOC.
295 ** The obsolete stringprep_utf8_to_ucs4_fast API entry point was removed.
296 By accident it was never removed in 0.1.0.
298 * Version 0.1.0 (released 2003-01-05)
300 ** Official GNU project.
302 ** Renamed from libstringprep to libidn.
304 ** Supports punycode and IDNA.  Caveat emptor: I don't use it myself.
306 ** Uses "unsigned long" for Unicode code points instead of "long".
307 Long is guaranteed to be at least 32 bits by C standards so it is
308 always sufficiently large, no need to use uint32_t and the like.
310 ** The obsolete stringprep_utf8_to_ucs4_fast API entry point was removed.
312 * Version 0.0.8 (released 2002-12-13)
314 ** Portability fixes (now works under Cygwin on Windows 2000).
316 ** Bug fixes.
318 * Version 0.0.7 (released 2002-12-09)
320 ** Apply all tables to entire strings, not just first hit.
322 ** Fix bidi infloop.
324 * Version 0.0.5 (released 2002-12-07)
326 ** Fix prohibited characters handling.
328 ** Fix bidi.
330 ** Renamed type (struct) stringprep_table_element to Stringprep_table_element.
332 ** Renamed type stringprep_profile to Stringprep_profile.
334 ** Renamed type (struct) stringprep_table to Stringprep_table.
336 ** Added more self-tests.
338 * Version 0.0.4 (released 2002-12-06)
340 ** Add unassigned code point handling, including self test cases.
342 ** Portability fixes.
344 * Version 0.0.3 (released 2002-11-30)
346 ** Exported utility function `stringprep_utf8_to_unichar', complementary
347 to existing `stringprep_unichar_to_utf8'.
349 ** Renamed `stringprep_utf8_to_ucs4_fast' to `stringprep_utf8_to_ucs4' to
350 clean up API. The old entry point is maintained for binary backwards
351 compatibility though.
353 ** The distribution is from now on signed using GnuPG.
355 ** Bug fixes.
357 * Version 0.0.2 (released 2002-11-07)
359 ** NFKC self test.
361 ** Bug fixes.
363 * Version 0.0.1 (released 2002-11-06)
365 ** Add utility functions stringprep_locale_charset(), stringprep_convert() 
366 and stringprep_locale_to_utf8 () that can be used to convert text from
367 system's locale into UTF-8, which should be done before invoking
368 stringprep().  The functions requires iconv() in the operating system.
370 ** An example program (example.c) that illustrates how libstringprep can be
371 used is included.
373 ** The pkg-config --libs output should now include necessary -R options.
375 * Version 0.0.0 (released 2002-11-05)
377 ** Initial release
379 ----------------------------------------------------------------------
380 Copying and distribution of this file, with or without modification,
381 are permitted in any medium without royalty provided the copyright
382 notice and this notice are preserved.