The Curses extension to perl5.000, version alpha8
Copyright (c) 1994,1995 William Setzer
All rights reserved.
This program is free software; you can redistribute it and/or modify
it under the terms of the Artistic License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
Artistic License for more details.
This is a dynamic loadable curses module for perl5. If you've seen
previous versions of Curses, you'll notice that very little remains of
the old version. This was necessary to fix some of the bad flaws in
the old one. So there's no more Configure or cursin.* or Curses.xs
process. Getting rid of Configure was a difficult decision, but I
think it'll help more than hurt in the long run.
Yes, it's been downgraded from beta back to alpha, but I never had
a good reason to make it beta in the first place. :-)
You can get this package from:
ftp://ftp.ncsu.edu/pub/math/wsetzer/Curses-a8.tar.gz
Mirrors take note: This is also available as:
ftp://ftp.ncsu.edu/pub/math/wsetzer/Curses/Curses-a8.tar.gz
The name change is to keep people from confusing it with perl 4.X
curseperl.
Please see the INSTALL document for how to install it on your system,
the Curses pod (located at the end of "Curses.pm") for
incompatibilities with other Perl programs, and the end of this
document for known compile or install problems.
New for alpha 8:
o Tested on perl5.001
o Better Makefile support. Now that we can use perl5.001 and the
much improved MakeMaker, you should be able to install Curses
more easily.
o Less compiling tests, so the symbol testing should go a little
faster.
o Fixes for various compiling problems.
o "make clean" now does the right thing.
Features:
o This version is much faster. Timing, including the dynamic
loading, of 5000 "addstr"s on a Sparc 5 under SunOS, SysV Curses:
Original Curses: ~14 sec
Curses2: 3.9 sec
New Curses: 1.6 sec
o Unified functions are still in, even with the increase in speed.
o Better diagnostics.
o Much better documentation. I think the new Curses pod is fairly
complete, but suggestions for revisions or additions are welcome.
o All supported Curses functions now exist. If the vendor's
libcurses doesn't have the equivalent C function, the perl
function will complain and exit.
o All incompatibilities with curseperl 4.X should now be explicitly
noted.
o Every function has been wrapped with with an #ifdef, so if the
symbol finding script doesn't work, you can still easily configure
the module by hand. Doing it the old way wasn't pretty.
o The "eval problem" has gone away.
o I've found the Linux getch() and getstr() problem. See below.
The "demo" program is for demonstration purposes only. If it
references a function your version of curses doesn't have, wrap it in
an "eval" and try again.
Many thanks Malcolm Beattie and Larry Wall, without whose code I could
steal I wouldn't have written this. Enjoy!
William Setzer
[email protected]
Known Problems
--------------
Linux:
getch() and getstr() don't work right. This is because of a bug
in ncurses. A patch to fix ncurses-1.8.5 can be found in the
file "ncurses.patch". After applying the patch and reinstalling
ncurses, everything should work fine.