# Ncurses-&ncurses-version;

The Ncurses package contains libraries for terminal-independent handling of character screens.

## Installation of Ncurses

The following patch contains updates from the &ncurses-version; branch by the Ncurses developers:

    patch -Np1 -i ../&ncurses-branch_update-patch;

Prepare Ncurses for compilation:

    ./configure --prefix=/usr --libdir=/lib \
        --with-shared --without-debug --enable-widec \
        --with-manpage-format=normal \
        --with-default-terminfo-dir=/usr/share/terminfo

Compile the package:

    make

This package has a test suite, and can be ran after the package is installed. The tests are in the `test/` directory. See the `README` file in that directory for details.

Install the package:

    make install

Move the Ncurses static libraries to the proper location:

    mv -v /lib/lib{panelw,menuw,formw,ncursesw,ncurses++w}.a /usr/lib

Create symlinks in `/usr/lib:`

    rm -v /lib/lib{ncursesw,menuw,panelw,formw}.so
    ln -svf ../../lib/libncursesw.so.5 /usr/lib/libncursesw.so
    ln -svf ../../lib/libmenuw.so.5 /usr/lib/libmenuw.so
    ln -svf ../../lib/libpanelw.so.5 /usr/lib/libpanelw.so
    ln -svf ../../lib/libformw.so.5 /usr/lib/libformw.so

Now we will make our Ncurses compatible for older and non-widec compatible programs can build properly:

    for lib in curses ncurses form panel menu ; do
            echo "INPUT(-l${lib}w)" > /usr/lib/lib${lib}.so
            ln -sfv lib${lib}w.a /usr/lib/lib${lib}.a
    done
    ln -sfv libncursesw.so /usr/lib/libcursesw.so
    ln -sfv libncursesw.a /usr/lib/libcursesw.a
    ln -sfv libncurses++w.a /usr/lib/libncurses++.a
    ln -sfv ncursesw5-config /usr/bin/ncurses5-config

Now we will create a symlink for /usr/share/terminfo in `/usr/lib` for compatibility:

    ln -sfv ../share/terminfo /usr/lib/terminfo

## Contents of Ncurses

Installed programs Installed libraries Installed directories
- captoinfo (link to tic), clear, infocmp, infotocap (link to tic), ncursesw5-config, reset (link to tset), tabs, tic, toe, tput, and tset libcursesw.so (link to libncursesw.so), libformw.[a,so], libmenuw.[a,so], libncurses++w.a, libncursesw.[a,so], and libpanelw.[a,so] /usr/share/tabset, /usr/share/terminfo

Short Descriptions

`captoinfo`

- Converts a termcap description into a terminfo description

`clear`

- Clears the screen, if possible

`infocmp`

- Compares or prints out terminfo descriptions

`infotocap`

- Converts a terminfo description into a termcap description

`ncursesw5-config`

- Provides configuration information for ncurses

`reset`

- Reinitializes a terminal to its default values

`tabs`

- Sets and clears tab stops on a terminal

`tic`

- The terminfo entry-description compiler that translates a terminfo file from source format into the binary format needed for the ncurses library routines. A terminfo file contains information on the capabilities of a certain terminal

`toe`

- Lists all available terminal types, giving the primary name and description for each

`tput`

- Makes the values of terminal-dependent capabilities available to the shell; it can also be used to reset or initialize a terminal or report its long name

`tset`

- Can be used to initialize terminals

`libcursesw`

- A link to `libncursesw`

`libncursesw`

- Contains functions to display text in many complex ways on a terminal screen; a good example of the use of these functions is the menu displayed during the kernel's `make menuconfig`

`libformw`

- Contains functions to implement forms

`libmenuw`

- Contains functions to implement menus

`libpanelw`

- Contains functions to implement panels