ncursesw
========================================================================
Ncurses provides libraries and utilities for manipulating terminal
display.  This package contains the utility programs and documentation
for ncurses.  It is compiled to support "wide" characters (that is,
wchar_t, not char).

NOTE: cygwin-1.7 now supports UTF-8 encoding by default. It is expected
that the "wide char" version of ncurses, ncursesw, will be of increasing
utility for clients as time goes on. Maintainers, I recommend that you
first attempt to rebuild your applications against libncursesw, and only
use libncurses if it doesn't work, and you can't figure out how to fix
it right away.  See the section 'Building clients' for more information.

Runtime requirements (these or newer):
  cygwin-1.7.1-1
  libncursesw10-5.7-18
  libgcc1-4.3.4-1
  libstdc++6-4.3.4-1
  terminfo

Build requirements (these or newer):
  cygwin-1.7.1-1
  gcc4-core-4.3.4-1
  gcc4-g++-4.3.4-1
  libgcc1-4.3.4-1
  libstdc++6-4.3.4-1
  binutils-2.19.51-1
  sed-4.1.5-2
  gawk-3.1.7-1
  bash-3.2.49-23
  libtool-2.2.7a-15
  perl-5.10.1-2
  coreutils-7.0-2
  cygport-0.9.9

Canonical homepage:
  http://www.gnu.org/software/ncurses/ncurses.html

Canonical download:
  ftp://ftp.gnu.org/pub/gnu/ncurses/

License:
  MIT/X11

Language:
  C, C++
 
========================================================================

Build instructions:
  unpack ncursesw-5.7-X-src.tar.bz2
    if you use setup to install this src package, it will be
    unpacked under /usr/src automatically
  cd /usr/src
  cygport ./ncursesw-5.7-X.cygport all

This will create:
  /usr/src/ncursesw-5.7-X-src.tar.bz2
  /usr/src/ncursesw-5.7-X.tar.bz2
  /usr/src/libncursesw10-5.7-X.tar.bz2
  /usr/src/libncursesw-devel-5.7-X.tar.bz2
  /usr/src/ncursesw-demo-5.7-X.tar.bz2

Or use 'cygport ./ncursesw-5.7-X.cygport prep' to get a patched source
directory.

To find out the files included in the binary distribution, you can
use "cygcheck -l ncursesw", or browse the listing for the appropriate
version at <http://cygwin.com/packages/>.

========================================================================
Building clients:

All libraries (libncursesw, libpanelw, libmenuw, libformw, libncurses++w)
come in both static (.a) and dynamic (.dll) forms.  Ideally, upstream
applications would "know" about both variants, and would accept 
--with-ncurses or --with-ncurses-wide configure options.  Unfortunately,
this is rare.

Here's what we want to happen: to link your project with the C libraries:
  #0) Use -I /usr/include/ncursesw when compiling
  #1) include ncurses.h
  #2) to link with the static library, use '-static' on the link line 
  #3) to link with the dll, no unusual link-time flags are needed (just
      add -lncursesw and the other *w libs as necessary).

To link your project with the C++ library:
  #0) Use -I /usr/include/ncursesw when compiling
  #1) include cursesapp.h
  #2) add -lncurses++w -lpanelw -lmenuw -lpanelw -lncursesw to your
      link command

The trick, of course, is to arrange for these things to happen. There
are a few options.

1) ncursesw6-config: If your package uses the ncurses*-config scripts,
you may be able to "convince" it to use ncursesw6-config instead of
ncurses6-config. That's the easiest and best option -- even if it requires
you to edit your package's configure.ac file and re-run autoconf. (Note
that both ncurses-5.7-18+ and ncursesw-5.7-18+ provide symbolic links
to these files named "ncurses[w]5-config" as well, for those clients that
only "know" about ncurses ABI 5.)

2) pkg-config. If your application uses pkg-config to determine the
compile and link flags for ncurses, then you can either
  a) Edit your configure.ac to explicitly PKG_CHECK_MODULES on the
     ncursesw (and other *w) packages, rather than the narrow ones.
     You then have to re-run autoconf.
  b) When configuring, set and export
     PKG_CONFIG_PATH=/usr/lib/ncursew/pkgconfig:/usr/lib/pkgconfig
     first.  The /usr/lib/ncursew/pkgconfig directory contains .pc
     files such as "ncurses.pc" which are actually symlinks to the
     ncursesw.pc versions. This should "fool" your application into
     using the compile and link flags appropriate for the wide version
     of ncurses.

3) Hand-rolled configuration code. Unfortunately, most applications
   fall into this category. They either simply assume that -lncurses
   will work (or worse, -lcurses), or they explicitly search for a
   short list of curses libraries (which never includes the wide
   version of ncurses). You could dig deeply into the configure.ac
   script and modify it as appropriate, so that it searches also --
   first -- for the wide libraries, but frankly that isn't recommended.
   I'd simply set CPPFLAGS and LDFLAGS appropriately as part of your
   configure invocation (e.g.
      ../src/configure --some-options --other-options \
        CPPFLAGS="-I/usr/include/ncursesw" \
        LDFLAGS="-L/usr/lib/ncursesw"
   The /usr/lib/ncursesw directory contains not only symlinks to all of
   the *w library files, but also duplicate symlinks with the narrow
   names.  This way, your application will be "tricked" into linking
   against the wide libraries, even though it will use -lncurses etc on
   its link command line.

========================================================================

Port Notes:
----------  ncursesw-5.7-18 -- 20090102 -----------
* Because the API changes (upstream "ABI 5" vs "ABI 6" are handled
  transparently by macros, we assist clients that explicitly search
  for ncurses5w-config by providing it as a symlink to ncurses6w-config.
  (Suggestion by Yaakov Selkowitz)
* Add symlinks in /usr/lib/ncursesw/ to the import, static, and
  libtool libs in /usr/lib/.  Also symlink pkgconfig.
* In addition, provide in /usr/lib/ncursesw/ symlinks to the 
  wide ncurses libraries using the names for the narrow libs. This
  is to support linking client applications against the wide libs,
  when those client apps only "know" about the narrow names. Simply
  use -L/usr/lib/ncursesw -I/usr/include/ncursesw, and compile/link
  as usual.
* pkgconfig-aware applications are similarly supported via additional
  symlinks in /usr/lib/ncursesw/pkgconfig/.  Simple set
  PKG_CONFIG_PATH=/usr/lib/ncursesw/pkgconfig:/usr/lib/pkgconfig

----------  ncursesw-5.7-17 -- 20091231 -----------
* Initial release with wide char support

Cygwin port maintained by: Charles Wilson  <cygwin@cygwin.com>
