The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
The Curses Perl module was created by William Setzer (William_Setzer
at ncsu.edu) in 1994.  William maintained it up until July 2001, when he
stopped having time to do so.

In September 2004, Bryan Henderson (bryanh@giraffe-data.com) took over
maintainership of it, after confirming with William that he did not
plan to continue.

The module has always been distributed via CPAN.

Curses itself is much older than the Perl implementation.  Curses was
originally only a C programming library.

New in 1.17 (Released October 14, 2007)

  Fix bug - can't find c-config.h on a system with ncursesw.

  Make cdemo work on Windows.

  Don't undefine SP macro with Pdcurses.  (Otherwise it won't compile;
  don't know why we used to undefine SP).

  In Windows hints file, #include curses.h instead of pdcurses.h.  It
  seems to be called curses.h these days.

New in 1.16 (August 7, 2007)

  Use Ncursesw (Ncurses with wide character functions) instead of
  Ncurses if available.

  Undefine "tab" macro, defined by Curses header file.  It interferes
  with perl.h.

  Fix demo.form to use L! instead of J in the pack template that generates
  the new_form() argument.  Apparently, J is something from older Perl
  and doesn't exist in current Perl.

  Put some documentation of the library in comments in demo.form.

  Use L! instead of I in the pack template in demo.menu.

  Change SvPV(X,PL_na) to SvPV_nolen(X) to get with the times.

  Change #!/usr/local/bin/perl to #! /usr/bin/perl .

  Fix bug: chgat() requires an extra, meaningless, argument.

New in 1.15 (October 8, 2006)

  Add a simple load test 00-load.t.

  Makefile.PL: use cdemo.obj instead of cdemo.o on Windows.

  Makefile.PL: Guess ncurses/bsd based on what .h files exist.

  Fix bug in Makefile.PL: doesn't use curses type in guess at c-config.h
  (e.g. tries to use c-freebsd.h when it should use c-freebsd.bsd.h).

  Change all sv_isa() to sv_derived_from() so you can use subclasses.
  Thanks Leigh <leighbrown@hsbc.com>.

  Rename default Darwin (Mac OS X) hints file (ca 2001) to c-darwin.old, and
  the newer one ca 2004) to c-darwin.old so as to be the default.  We're
  guessing that the newer one applies to more systems today.

New in 1.14 (June 3, 2006)

  Make demo.form work on 64 bit machine.

  Add some narration to Makefile.PL to help with diagnosis.

  Move undef of 'instr' from individual hint files to Curses.c and add
  explanation.

  Use perl -w instead of 'use warnings' in Makefile.PL so it works with
  older Perl.

New in 1.13 (October 10, 2005)

  Fix so it builds on current Cygwin.

  Some kind of build fix to get panels, forms, and menu functions to build.

New in 1.12 (March 17, 2005)

  Build bug fixed: panel, forms, menu libs not found in build.

  Build bug fixed: Curses.pm treats version as number, so 1.10 == 1.1 .

New in 1.11 (March 12, 2005)

  Various cleanup and improved diagnostics in the build.

New in 1.10 (March 11, 2005)

  Build bug fixed: Makefile has undefined variable $libtyp.

  Build bug fixed: Makefile computes wrong guess hint file name.

New in 1.09 (March 6, 2005)

  - Makefile.PL searches for curses header files instead of assuming
    based on $OSNAME.

  - Makefile.PL warns user to reconfigure environment when form.h is
    in /usr/include rather than just add -I/usr/include to the compile
    (this concerns the problem with the conflicting Perl form.h file).

New in 1.08 (November 2004)

  - perl.syms more verbose so you can diagnose failures.

  - You can use environment variables instead of modifying Makefile.PL
    to set your -I, -L, etc. options for the Curses libraries.

  - c-linux.ncurses.h hints file includes ncurses.h, not curses.h.

  - New c-darwin-thread-multi-2level.h hints file.

New in 1.07 (September 2004)

  - Call to Perl_isa_sv() changed to isa_sv() because the former doesn't
    work on some systems (causes a build failure).

New in 1.06 (July 2001)

 o Now requires perl5.005 or better to run.  (You can probably run it
   in perl5.002-perl5.004 by grabbing newCONSTSUB out of the IO
   distribution on CPAN and editing all uses of "foreach my $var" in
   my perl scripts.)

 o Did lots of fiddling with the file generation in an effort to make
   it more comprehensible.  In doing so, I moved around the way some
   things were done and probably broke it on some systems with weird
   compilers.  Please let me know.

 o changed the "Curses->new()" function to be a bit less clever.

 o Support for libmenu!  Many thanks to Yury Pshenichny <yura at zp.ua>
   who did most of the actual work.

   Update: Well, sort of support.  For some reason beyond my ken, it
   doesn't work with Solaris (2.6) libmenu. (The items won't attach to
   the menu.)  ncurses menu, both 1.9.9 and 5.2, seem to work fine.

 o libform support added, too.  Ho hum.  ;)  This one does appear to
   work with Solaris libform.

 o Added the following ncurses extension functions:

   use_default_colors()
   assume_default_colors()
   define_key()
   keybound()
   keyok()
   resizeterm()

   (Thanks to neild at misago.org, hans at kolej.mff.cuni.cz)

 o Re-enabled the functions:

   attr_get()
   attr_off()
   attr_on()
   attr_set()

 o Between the functions supported and the functions listed in the
   pod as not supported, those are all the ones I know about.
   Got any more?  Let me know.

 o Fixed 64 bit issue with getch() and possibly others, truncating
   returns of `chtype' to 32 bits.  Note that this could possibly
   break some OSes.  Please let me know.
   (Thanks to Randall.G.Steiner at bankofamerica.com)

 o Fixed bug where @ARGV was always being cleared, and so no arguments
   ever got to MakeMaker.
   (Thanks to bdlow at nortelnetworks.com)

 o Added hints for Darwin/Mac OS X system.
   (Thanks to sdietrich at emlab.com)

 o Added note to NETBSD users at the bottom of this README.

 o Added a security notice to the README and pod.
   (Thanks to connor at ing.umu.se)

 o Has anyone successfully used the mouse event stuff?