The NEWS file for GNU Guile-NCurses

  Copyright 2009, 2010, 2011, 2013, 2014, 2016 Free Software Foundation, Inc.

  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
  notice and this notice are preserved.

Release 2.0
- changes to the configuration and build process
  - Compiled scheme files (.go files) are created

  - The new default behavior of the install is to put the scheme and
    compiled libraries into the directories expected by the current
    Guile.

    Previously, the libraries and scheme files would be installed
    under $prefix (usually /usr/local) unless with the
    --with-guilesitedir configure option was set.

    A new configure option --with-gnu-filesystem-hierarchy is
    available if the old default behavior of installing under $prefix
    is desired.

  - Guile 2.0 is expected. Guile 1.6, 1.8 and 2.1 are not tested.

  - the "wide" UTF-8-capable version of the ncurses libraries is now
    used by default.  The configure option '--without-ncursesw' can be
    used to explicitly compile with the 8-bit-only "narrow" ncurses
    libraries.

  - building the termios functionality is now the default. Before it
    was not built by default.  To not build the termios functionality,
    use the --disable-termios configure option.

- changes to the (ncurses curses) base library
  - new procedures 'use-extended-names', 'getdelay'
  - new panel iterator functions 'panels-map' and 'panels-for-each'
  - new panel equivalence function 'panel=?'
  - new window function 'resize'
  - new key/mouse constants KEY_EVENT,
    NCURSES_MOUSE_VERSION, the BUTTON5 constants
  - for systems with no wchar_t conversions availble in libunistring,
    such as FreeBSD, character conversions assume that wchar_t is
    UTF-32

- changes to the (ncurses menu) library
  - new constant O_MOUSE_EVENT

- changest to the (ncurses form) library
  - new procedure 'current-field'

- changes to the (ncurses extra) library
  - the termios API is completely re-written, and incompatible with
    the previous version

- the test suite has be reworked. tests are more specific and
  informative. the test-suite.log output file is easier to read.

Release 1.7
- the previously undocumented (ncurses curses) procedure 'window?' is
  now public and documented
- the previously undocumented (ncurses panel) procedure 'panel?' has
  been moved to (ncurses curses) and had been documented
- the (ncurses curses) procedure 'delwin' always returns #t now
- the (ncurses curses) procedures 'cursyncup', 'syncup', and
  'syncdown' are no longer broken
- 'posix-explorer' demo program now works on Guile 1.8.8
- panels are now a sub-class of windows
  - the #<panel> type is eliminated
  - the (ncurses panel) procedures 'new-panel' and 'del-panel' are
    eliminated
  - new (ncurses curses) procedures 'make-panel!' and 'del-panel!'
    convert/deconvert a plain window into a panel window
  - all panel functions now operate on panel window #<window> types
  - the previously undocumented 'window?' routine now returns #t
    on plain windows and panel windows
  - the previously undocumented 'panel?' routing now returns #t
    on panel windows and #f on plain windows.
  - the (ncurses curses) procedures 'newwin', 'derwin', and 'subwin'
    now have a key parameter #:panel that, when #t, creates the
    windows as panel windows.


Release 1.6
- new procedure 'unctrl'
- new procedure 'resizeterm'
- new constant '%is-form-driver-wide' denotes if the form driver
  can handle wide characters
- 'form-driver' now handles Unicode if the ncurses form_driver_w
  function is available
- 'newterm' now operates only on file ports, and will close those
  ports if newterm is successful.  String ports are no longer
  supported because they never worked properly; the underlying library
  expects that newterm's ports have file descriptors.
- 'getwin' and 'putwin' don't leak file descriptors now
- the default printer for #<window> now displays window size
  and if it is stdscr
- the 'guile-ncurses-shell' no longer links to ncurses directly:
  it uses guile-ncurses to handle ncurses interactions
- the configure script no longer ignores LIBS and LDFLAGS
  specified on the command line

Release 1.5
- parallel 'make check' is now supported
- will now look for ncurses headers in <ncursesw/curses.h> as well
- the wcwidth procedure is not provided if it is not supported by the
  underlying libraries
- update autoconfigury
- Cygwin: support pty devices with guile-ncurses-shell
- MinGW: avoid C library functions that are unavailable
- MinGW: building guile-ncurses-shell is no longer attempted
- MinGW: the libguile-ncurses dll is now unversioned so that Guile can
  find it


Release 1.4

- Regenerate autoconfigury to avoid automake-related vulnerability

- copywin's last argument is now a boolean, not an integer

- new xchar field getter/setters: xchar-attr, xchar-color,
  xchar-chars, set-xchar-attr!, set-xchar-color!, set-xchar-chars!

- underline-off is now properly exported

- added missing alias variables TYPE_ALNUM, TYPE_ALPHA, TYPE_ENUM,
  TYPE_INTEGER, TYPE_NUMERIC, TYPE_REGEXP, and TYPE_IPV4


Release 1.3
- Reworked support for is-pad? and is-subwin?
  - configure tests for presence of is_pad and is_subwin in ncurses
  - is-pad? and is-subwin? now return #t the ncurses library has no
    way to give information if a window is a pad or subwin
  - new feature test constants %is-pad-broken and %is-subwin-broken
    give information if is-pad? and is-subwin? always return true
- The tests now only run if an xterm terminfo file is avaiable.
- Tests that gave different results when detached from a terminal
  were disabled.
- Disable experimental termios library by default.
- Fix memory double-free error in form library.
- New functions grantpt, unlockpt, ptsmakeraw, ptsname in undocumented
  'extra' library
- Some bugfixes.

Release 1.2
- Add many docstrings for curses library
- Convert curses library to use srfi-34/35 conditions.  Curses
  predicate functions added: curses-wrong-type-arg-error?,
  curses-bad-state-error?
- New curses functions: mcprint, is-subwin?, is-pad?, is-cleared?,
  is-idlok?, is-idcok?, is-immedok?, is-leaveok?, is-scrollok?,
  getscrreg, has-mouse?, is-keypad?, is-meta?, is-nodelay?,
  is-immedok?, is-notimeout?, getmaxx, getmaxy, getbegx, getbegy,
  getparx, getpary, getcurx, getcury
- New utility functions: wcwidth, standout, standout-on, standout-off
- wsyncdown renamed to syncdown
- wsyncup renamed to syncup
- wcursyncup renamed to cursyncup
- Many bugfixes

Release 1.0
- Fix bad installation directory

Release 0.9
- Rename to GNU Guile-Ncurses
- fix some test bugs

Release 0.8
- Rename to Guile-Ncurses
- Move to LGPL3
- Add some support for Gettext translations of error messages

Release 0.7
- rename set-field-type to set-field-type!
- return build system to a more traditional autotools build
- support NCURSES_OPAQUE
- better Cygwin 1.7.1 support

Release 0.6

- Make the SLK functions work.
- Better Guile 2.0.x compatibility.

Release 0.5

- A bug fix release.

Release 0.4

- Abstracted away the difference between wide and narrow functions
- Created a new xchar (rendered complex character) scheme type
  to replace the old complex char and chtype
- Created new xchar creation functions, like (bold #\x) and (blink
  #\x)
- Jiggled the naming conventions, adding exclamation points and
  question marks.
- Tried to add some Guile 1.6.x and Guile 2.0.x compatibility
- Changed the build system to no use recursive Makefiles
- Some attempt at building correctly on BSD-like systems

Release 0.3
- Modified API to be more scheme-like
- Modified SMOBs to make them work with the garbage collector.

Release 0.2
- Panel, menu, and form libraries wrapped
- Rough draft but complete documentation

Release 0.1
- Changed constanst from *xxx* style to XXX style
- Cygwin support
- Initial attempt at wrapping panel, menu library.
- Gucushell tool added

Release 0.0
- Initial alpha release





Local Variables:
mode: text
fill-column: 70
mode: auto-fill
End:
