-*- mode:outline -*-

* NEWS -- History of user-visible changes in Libretto
=====================================================


* 2.1 ("Wood Green" Libretto)
-----------------------------

** Flexible, future-proof feature testing mechanism for programs
building against the library.

** Fixed Makefile.am so other people can develop.

** Two minor bugfixes.

** Numerous documentation fixes.
The manual should now be completely accurate.

** Lots of new functions.
New functionality in the Chain, Autostr, Darray, and Bstree modules.


* 2.0 ("Turnpike Lane" Libretto)
--------------------------------

** Fixed the remaining allocation bugs in darray and autobuf.

** Added LIBRETTO_OOM_SEGV.


* 2.0-beta4
-----------

** Split up the header files (for future scalability).

** More bugfixes.

** New mem_try_realloc() function; some library code altered to use it.


* 2.0-beta3
-----------

** Fixed the distribution, so it will actually build now.


* 2.0-beta2
-----------

** Types are now properly abstracted: the structs are forward declarations.

** Type names are now initial-uppercase rather than final-`_t'.

** Strings are now `Autostr'; also changed str_FOO to astr_FOO.

** Memory allocation can optionally return NULL; calling conventions for
other functions have been changed to allow for this.

** Changed some function names.

** Fixed bugs in the scanf functions and in ab_slice.

** Removed the obsolete functions.


* 2.0-beta1
-----------

** Completely changed interfaces for message module.

** Added some new printf and scanf functions.

** The build process is now managed by GNU Autoconf, GNU Automake and
GNU Libtool.


* 1.7.1 ("Manor House" Libretto)
--------------------------------

** Fixed the glaring bug in message.c (backported from an early version of
release 2.0-beta1, which was forked off from Finsbury Park).


* 1.7 ("Finsbury Park" Libretto)
--------------------------------

** Changed interface for escape sequence characters.

*** Deleted str_set_esc_char().  This change was crucial to make the library
thread-safe.

*** New function str_esc_char_c() -- like str_esc_char, except that one now
only uses a backslash, while you specify a character with the new one.

** New function str_substr_i().  Behaves like str_substr(), except that you
supply start and end indices, rather than than a start index and a length.

** New function str_copy_from_ab().  Copies the textual portions from an
autobuf into a string_t.

** New global variables in the message module.  `libretto_program_name' and
`libretto_program_short_name' behave in the obvious way.  (And they will
work on all future releases, on all platforms.)

** New type autobuf_t: like a string_t, but it can contain null bytes.


* 1.6 ("Libretto 98")
---------------------

** Changed interface for searching in a darray_t.

*** Created new functions da_find and da_rfind.  New code should use these
functions.

*** Obsoleted da_search.  At the moment, it prints a warning message (but
only the first time it is called) and then calls da_find.  It will
eventually be removed entirely.

*** Obsoleted da_rsearch.  When called, it prints a message and aborts.
Sorry.  But then, it never worked anyway.

** New string_t case fiddling functions: str_upcase, str_downcase,
str_capitalise, str_upcase_initials, str_flipcase.

** New string_t functions which create/initialise and set contents at the
same time: str_initialise_s, str_create_s.

** New string_t functions for destroying/finalising several strings at the
same time: str_destroy_all, str_finalise_all.

** New darray_t functions: da_equal (compare two darrays) and da_bsearch_lim
(do a binary search for an element in the array between the specified limits).

** New chain_t function: chain_append (synonym for chain_enqueue and
chain_back_insert).

** Documentation updated for the new functions and changed interface.


* 1.5.2 (not officially released)
---------------------------------

** _Really_ fixed the bug in str_delete.


* 1.5.1
-------

** Fixed bugs in str_copy, str_insert_c, str_delete, str_substr.


* 1.5 -- first public release
-----------------------------
