[2019-06-18] Version 0.5.18

  * ABI change due to removal of some functions or small changes in arguments or
    signatures (e.g. 'const'), the SONAME is now libcwidget.so.4

  * Update the gettext infrastructure via "gettextize -f"

  * Fix possible leak in ssprintf.cc

  * Modernise code with C++11 features

  * Change cwidget.pc to add include for /usr/include/cwidget, thanks Leo
    L. Schwab (Closes: #834095)

  * Use vw_printw() instead of vwprintw(), deprecated

  * configure.ac: Change WERROR to "-Werror -Wno-terminate", because there's a
    macro in eassert.h that pretty much triggers termination on purpose

  * Change the basic wchtype() constructor to "wchtype() = default;", because
    even if it was empty it was not being considered as trivial enough, and it
    was causing failures to compile with g++-9:

    /usr/include/cwidget/curses++.h:204:36:   required from here
    /usr/include/c++/9/string_view:93:42: error: static assertion failed
     93 |       static_assert(is_trivial_v<_CharT> && is_standard_layout_v<_CharT>);
        |                     ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  * testcwidget.cc: rename "size" to "widgets::size", the compiler g++-9
    complains about being unable to disambiguate it with std::size

  * Fix FTBFS with GCC 8, thanks to Peter Siket <pepe at inf.u-szeged.hu>
    (Closes: #896180)

  * Do not write timestamps in documentation generated by Doxygen

    Author: Jérémy Bobbio <lunar@debian.org>

    In order to make the build reproducible, we configure Doxygen to skip
    writing timestamps in the HTML documentation it generates.


[2014-02-21] Version 0.5.17

  First upstream release with new maintainer:
    Manuel A. Fernandez Montecelo <mafm@debian.org>


  * Remove -1.9 from some of the autotools commands, run instead the
    latest/default versions of the system (1.9 is quite old by now)

  * Make .xz the default for 'make dist'

  * Rename variable pkglibdir_HEADERS to config_HEADERS (inspired in bug
    #732539, thanks Colin Watson <cjwatson@ubuntu.com>)

    To avoid strictness errors with automake starting in 1.12 or so:
    Makefile.am:30: error: 'pkglibdir' is not a legitimate directory for 'HEADERS'

  * Renaming 'INCLUDES' to 'AM_CPPFLAGS' in .am files

    Due to this:
    warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')

  * Do not distribute a changelog for m4 dir

  * Add .po files from NMUs 0.5.16-3.3 and 0.5.16-3.4 (thanks David Prévot
    <taffit@debian.org>)

  * Fix for "cursor displayed in wrong place for wide-char prompt" (bug #316939,
    thanks Daniel Hartwig <mandyke@gmail.com>)

  * Fix for problem when Delete key (KEY_DC) was considered equivalent to
    Backspace and others (bug #493320, thanks Samuel Fogh <gaffa@users.sf.net>)

  * Daniel Burrows: Update the gettext infrastructure via "gettextize -f".

  * Daniel Burrows: Bind a text domain and use it to get translations (instead
    of the current system domain).


[0.5.16]
2009-11-29

  * Revert the signal handling change.  That's the right thing to do,
    but it's too disruptive without a lot more groundwork around how
    widgets are destroyed.  It should be saved until the next ABI
    break, at least.

  * Revert the change that causes global thread synchronization
    objects to not be destroyed, for now; it was mainly needed for the
    signal changes.

[0.5.15]
2009-11-29

  * Hopefully work around problems with the threading unit tests on
    platforms with strict limits on thread resources such as
    hppa. (Closes: #557982)

  * cwidget thread exceptions now carry the errno code where
    appropriate.

  * When cwidget exits with an error, it invokes the former signal
    handler rather than necessarily exiting immediately.  This can
    cause different behavior for some signals, as libc appears to
    invoke atexit() and global destructors when processing SIGINT or
    SIGTERM.  However, it's the most sensible way to ensure that
    signal chaining can be used with cwidget.

  * cwidget no longer attempts to destroy its global thread
    synchronization objects, to avoid races and deadlocks if global
    destructors are invoked while a cwidget thread is still running.
    Ideally, we would provide a library routine to destroy them at a
    well-defined point in the program's execution.

[0.5.14]
2009-11-17

  * Fix a crash caused by not guarding against divide-by-zero when
    formatting fragments into columns. (Closes: #556185)

  * Partially fix compilation with g++ 4.4.  It still dies with some
    errors that I don't understand.

  * Internationalize the source tree.

  * Improve cwidget's signal hygeine by blocking all signals in its
    background threads (except the one that handles WINCH) so that
    they don't interfere with the program's signal handling.

[0.5.13]
2009-09-05

  * Fix some deadlocks in input handling related to suspending and
    restarting cwidget.

  * Trigger a screen update when the root node of a tree is changed.

  * Fix some questionable uses of varargs functions.

  * Handle very long output strings correctly in swsprintf.
    (Closes: #496119)

  * Minor documentation improvements.  Still lots of work to do here.

[0.5.12]
2008-06-28

  * Don't insert "error decoding multibyte string" into text fragments
    on top of interpolating question marks.  Thanks to Nelson de Oliveria
    for pointing out that this is unhelpful.

[0.5.11]
2008-04-12

  * Fix the mechanism introduced in the last release to handle
    equivalent classes of keys so that its initialization is tied to
    when it's actually needed, instead of being tied to the creation
    of some unrelated tables.

  * Update the synonyms for backspace to include character 127 (which
    is now being generated by xterm-256color when backspace is
    pressed).

[0.5.10]
2008-04-11

  * Treat KEY_DC and KEY_BACKSPACE as equivalent in key_matches();
    some termcap entries generate one for the backspace key and some
    generate the other. (Closes: #452651)

[0.5.9]
2008-03-21

  * Fix compilation errors in the test suite with g++ 4.3.

  * Remove a stray use of the deprecated SigC namespace, to
    support libsigc++ 2.2 and above.

[0.5.8]
2008-01-20

  * ABI change due to changing hash_map in some structures to
    std::map.

  * Fix compilation errors with g++ 4.3.  Mostly this just meant
    adding more #includes in source files, but g++ 4.3 also removed
    the nonstandard hash_map extension that cwidget was
    using.

    Technically it just generated a deprecation warning, but since
    cwidget compiles with -Werror, this was elevated into a compile
    error.  Since the ABI changed just yesterday for other reasons, I
    decided to bite the bullet and yank the hash_map references
    immediately rather than papering over the warning.

[0.5.7]
2008-01-19

  * ABI change due to changes in the code of some inline functions:
    the SONAME is now libcwidget.so.2.

  * All wrappers around pthread_cond_wait now release the mutex if the
    thread is cancelled while waiting.  This is arguably a somewhat
    awkward solution to the problem, and further improvements are
    likely.

  * Fix several threading bugs in the input handlers.  The input
    handler will no longer read from or write to freed memory, and it
    will no longer get confused and blow up the program after a
    toplevel::suspend()/toplevel::resume() pair.

    Closes: #461342 and possibly also #431054, #431688, #432323,
    #434861.

  * Handle invalid byte sequences encountered by wget_wch better: just
    beep instead of throwing a fatal exception.  (Closes: #460722)

[0.5.6.1]

  * Actually distribute the ikiwiki input files in "make dist".

[0.5.6]

  * ABI change: the SONAME is now libcwidget.so.1.

  * Add general documentation and information.  This is the cwidget
    Web site, compiled as a local collection of HTML files by IkiWiki.

  * If stdin is closed, throw a fatal exception from the main loop
    instead of spinning forever. (Debian bug #451770)

  * Import some cppunit tests that apply to cwidget.

  * Add a missing #include <stdarg.h> in ssprintf.cc. (Debian bug #452979)

  * Add untested support for the mouse wheel if ncurses is compiled
    with support for mouse button 5.

[0.5.5]

  * Fix several include paths that were relative to the source
    directory, not relative to cwidget.

[0.5.4]

  * Fix the include path declared by the .pc file; it should point at
    "includedir", not "pkgincludedir".

[0.5.3]

  * Generate a cwidget-config.h file that contains #defines needed for
    the public interface of cwidget to make sense.

  * Build a .pc file so that pkg-config can be used to set up
    compile/link flags for cwidget-using packages.

  * Add an entry point that returns the current library version.

  * Remove more references to vscreen.

  * Remove some references to libapt.

[0.5.2]

  * Fix documentation building again: we need the sub-makefile to get
    cleaning to happen nicely, but the main makefile needs to know
    about it, so don't build docs in doc/ on "make all".

[0.5.1]

  * Actually install headers in "make install".

  * Fix documentation building to be more friendly to the Debian packaging.

[0.5.0]

  * Initial release.

  * Changes from aptitude:

    + Rename vscreen to cwidget. (the name "vscreen" had to do with a
      very very old version of the library and is no longer relevant)

    + Move everything into C++ namespaces under cwidget.

    + Reorganize the code to move more generic code into the generic
      directory.
