ncurses 5.6 - patch 20070324
[ncurses.git] / README
diff --git a/README b/README
index 8af7db77fc8af4400ac88c825f6ede7a08e82b86..56bc38586f48cb167d49a3efd62c5a9f03db9f7c 100644 (file)
--- a/README
+++ b/README
@@ -1,3 +1,32 @@
+-------------------------------------------------------------------------------
+-- Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.               --
+--                                                                           --
+-- Permission is hereby granted, free of charge, to any person obtaining a   --
+-- copy of this software and associated documentation files (the             --
+-- "Software"), to deal in the Software without restriction, including       --
+-- without limitation the rights to use, copy, modify, merge, publish,       --
+-- distribute, distribute with modifications, sublicense, and/or sell copies --
+-- of the Software, and to permit persons to whom the Software is furnished  --
+-- to do so, subject to the following conditions:                            --
+--                                                                           --
+-- The above copyright notice and this permission notice shall be included   --
+-- in all copies or substantial portions of the Software.                    --
+--                                                                           --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS   --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF                --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN --
+-- NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,       --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR     --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE --
+-- USE OR OTHER DEALINGS IN THE SOFTWARE.                                    --
+--                                                                           --
+-- Except as contained in this notice, the name(s) of the above copyright    --
+-- holders shall not be used in advertising or otherwise to promote the      --
+-- sale, use or other dealings in this Software without prior written        --
+-- authorization.                                                            --
+-------------------------------------------------------------------------------
+-- $Id: README,v 1.23 2006/04/22 22:19:37 tom Exp $
+-------------------------------------------------------------------------------
                README file for the ncurses package
 
 See the file ANNOUNCE for a summary of ncurses features and ports.
@@ -8,15 +37,15 @@ See the file TO-DO for things that still need doing, including known bugs.
 Browse the file misc/ncurses-intro.html for narrative descriptions of how
 to use ncurses and the panel, menu, and form libraries.
  
-Browse the file misc/hackguide.html for a tour of the package internals.
+Browse the file doc/html/hackguide.html for a tour of the package internals.
 
 ROADMAP AND PACKAGE OVERVIEW:
 
-You should be reading this file in a directory called: ncurses-d.d.d,
-where d.d.d is the current version number (see the dist.mk file in
-this directory for that).  There should be a number of subdirectories,
-including `c++', `form', `man', `menu', `misc', `ncurses', `panel',
-`progs', `test', and `Ada95'.
+You should be reading this file in a directory called:  ncurses-d.d, where d.d
+is the current version number (see the dist.mk file in this directory for
+that).  There should be a number of subdirectories, including `c++', `form',
+`man', `menu', `misc', `ncurses', `panel', `progs', `test', 'tack' and `Ada95'. 
+(The 'tack' program may be distributed separately).
 
 A full build/install of this package typically installs several libraries, a
 handful of utilities, and a database hierarchy.  Here is an inventory of the
@@ -30,33 +59,44 @@ The libraries are:
        libncurses_p.a     (profiling enabled)
 
        libpanel.a         (normal)
+       libpanel.so        (shared)
        libpanel_g.a       (debug and trace code enabled)
 
        libmenu.a          (normal)
+       libmenu.so         (shared)
        libmenu_g.a        (debug enabled)
 
        libform.a          (normal)
+       libform.so         (shared)
        libform_g.a        (debug enabled)
 
+If you configure using the --enable-widec option, a "w" is appended to the
+library names (e.g., libncursesw.a), and the resulting libraries support
+wide-characters, e.g., via a UTF-8 locale.  The corresponding header files
+are compatible with the non-wide-character configuration; wide-character
+features are provided by ifdef's in the header files.  The wide-character
+library interfaces are not binary-compatible with the non-wide-character
+version.
+
 The ncurses libraries implement the curses API.  The panel, menu and forms
-libraries implement clones of the SVr4 panel, menu and forms APIs.  The
-source code for these lives in the `ncurses', `panel', `menu', and
-`form' directories respectively.
+libraries implement clones of the SVr4 panel, menu and forms APIs.  The source
+code for these lives in the `ncurses', `panel', `menu', and `form' directories
+respectively.
 
 In the `c++' directory, you'll find code that defines an interface to the
-curses and panels library packaged as a C++ class, and a demo program in C++
-to test it.  These class definition modules are not installed anywhere by
-default; it's up to you what you do with them.
+curses, forms, menus and panels library packaged as C++ classes, and a demo program in C++
+to test it.  These class definition modules are not installed by the 'make
+install.libs' rule as libncurses++.
 
 In the `Ada95' directory, you'll find code and documentation for an
 Ada95 binding of the curses API, to be used with the GNAT compiler.
 This binding is built by a normal top-level `make' if configure detects
-an usable version of GNAT (3.05 or above). It is not installed automatically.
+an usable version of GNAT (3.11 or above). It is not installed automatically.
 See the Ada95 directory for more build and installation instructions and
 for documentation of the binding.
 
-In order to do its job, the ncurses code needs your terminal type to be set in
-the environment variable TERM (normally set by your OS; under UNIX, getty(1)
+To do its job, the ncurses code needs your terminal type to be set in the
+environment variable TERM (normally set by your OS; under UNIX, getty(1)
 typically does this, but you can override it in your .profile); and, it needs a
 database of terminal descriptions in which to look up your terminal type's
 capabilities.
@@ -72,7 +112,7 @@ second form.
 In the `misc' directory, there is a text file terminfo.src, in editable
 terminfo format, which can be used to generate the terminfo binaries (that's
 what make install.data does).  If the package was built with the
---with-termcap option enabled, and the ncurses library can't find a terminfo
+--enable-termcap option enabled, and the ncurses library cannot find a terminfo
 description for your terminal, it will fall back to the termcap file supplied
 with your system (which the ncurses package installation leaves strictly
 alone).
@@ -83,33 +123,23 @@ The utilities are as follows:
        infocmp         -- terminfo binary to source decompiler/comparator
        clear           -- emits clear-screen for current terminal
        tput            -- shell-script access to terminal capabilities.
-       tset            -- terminal-initialization utility
        toe             -- table of entries utility
+       tset            -- terminal-initialization utility
 
-The first two are used for manipulating terminfo descriptions; the next two
-are for use in shell scripts.  The last is provided for 4.4BSD compatibility.
-The source code for all of these lives in the `progs' directory.
-
-Detailed documentation for all libraries and utilities can be found in
-the `man' directory.  An HTML introduction to ncurses, panels, and
-menus programming lives in the `misc' directory.
-
-The `test' directory contains programs that can be used to verify the 
-functions of the ncurses libraries.  See test/README for descriptions of
-these programs.  Notably, the `ncurses' utility is designed to help you
-systematically exercise the library functions.
-
-RELATED RESOURCES:
-
-This distribution now includes (and uses) a copy of the master terminfo
-database maintained by Eric Raymond.  This database (which is the 
-official descendant of the 4.4BSD termcap file) changes faster than this
-code does.
+The first two (tic and infocmp) are used for manipulating terminfo
+descriptions; the next two (clear and tput) are for use in shell scripts.  The
+last (tset) is provided for 4.4BSD compatibility.  The source code for all of
+these lives in the `progs' directory.
 
-You can surf to a WWW page that carries the current terminfo master file,
-and news about ncurses, at
+Detailed documentation for all libraries and utilities can be found in the
+`man' and `doc' directories.  An HTML introduction to ncurses, panels, and
+menus programming lives in the `doc/html' directory.  Manpages in HTML format
+are under `doc/html/man'.
 
-       http://www.ccil.org/~esr/ncurses.html
+The `test' directory contains programs that can be used to verify or
+demonstrate the functions of the ncurses libraries.  See test/README for
+descriptions of these programs.  Notably, the `ncurses' utility is designed to
+help you systematically exercise the library functions.
 
 AUTHORS:
 
@@ -119,26 +149,33 @@ Pavel Curtis:
 Zeyd M. Ben-Halim:
        port of original to Linux and many enhancements.
 
-Thomas Dickey (maintainer since 1.9.9e):
+Thomas Dickey (maintainer for 1.9.9g through 4.1, resuming with FSF's 5.0):
        configuration scripts, porting, mods to adhere to XSI Curses in the
        areas of background color, terminal modes.  Also memory leak testing,
-       the wresize extension and numerous bug fixes (more than half of those
-       enumerated in NEWS since release 1.9.2d)
+       the wresize, default colors and key definition extensions and numerous
+       bug fixes (more than half of those enumerated in NEWS beginning with
+       the internal release 1.8.9).
+
+Florian La Roche (official maintainer for FSF's ncurses 4.2)
+       Beginning with release 4.2, ncurses is distributed under an MIT-style
+       license.
 
 Eric S. Raymond:
        the man pages, infocmp(1), tput(1), clear(1), captoinfo(1), tset(1),
-       toe(1), most of tic(1), src/lib_twait.c, trace levels, the HTML intro,
-       wgetnstr() and many other entry points, the cursor-movement
-       optimization, the scroll-pack optimizer for vertical motions,
-       the mouse interface and xterm mouse support, and the ncurses
-       test program.
+       toe(1), most of tic(1), trace levels, the HTML intro, wgetnstr() and
+       many other entry points, the cursor-movement optimization, the
+       scroll-pack optimizer for vertical motions, the mouse interface and
+       xterm mouse support, and the ncurses test program.
 
 Juergen Pfeifer
-       The menu and form code, and the Ada95 binding.  Ongoing support for
-       panel.
+       The menu and form libraries, C++ bindings for ncurses, menus, forms and
+       panels, as well as the Ada95 binding.  Ongoing support for panel.
 
 CONTRIBUTORS:
 
+Alexander V. Lukyanov
+       for numerous fixes and improvements to the optimization logic.
+
 David MacKenzie
        for first-class bug-chasing and methodical testing.
 
@@ -161,10 +198,13 @@ Keith Bostic (maintainer of 4.4BSD curses)
        for help, criticism, comments, bug-finding, and being willing to
        deep-six BSD curses for this one when it grew up.
 
+Richard Stallman,
+       for his commitment to making ncurses free software.
+
 Countless other people have contributed by reporting bugs, sending fixes,
 suggesting improvements, and generally whining about ncurses :-)
 
 BUGS:
        See the INSTALL file for bug and developer-list addresses.
-       The Hacker's Guide in the misc directory includes some guidelines
+       The Hacker's Guide in the doc directory includes some guidelines
        on how to report bugs in ways that will get them fixed most quickly.