| Announcing ncurses 6.0 |
| |
| Overview |
| |
| The ncurses (new curses) library is a free software emulation of |
| curses in System V Release 4.0 (SVr4), and more. It uses terminfo |
| format, supports pads and color and multiple highlights and forms |
| characters and function-key mapping, and has all the other SVr4-curses |
| enhancements over BSD curses. SVr4 curses is better known today as |
| X/Open Curses. |
| |
| In mid-June 1995, the maintainer of 4.4BSD curses declared that he |
| considered 4.4BSD curses obsolete, and encouraged the keepers of unix |
| releases such as BSD/OS, FreeBSD and NetBSD to switch over to ncurses. |
| |
| Since 1995, ncurses has been ported to many systems: |
| * It is used in almost every system based on the Linux kernel (aside |
| from some embedded applications). |
| * It is used as the system curses library on OpenBSD, FreeBSD and |
| OSX. |
| * It is used in environments such as Cygwin and MinGW. The first of |
| these was EMX on OS/2 Warp. |
| * It is used (though usually not as the system curses) on all of the |
| vendor unix systems, e.g., AIX, HP-UX, IRIX64, SCO, Solaris, |
| Tru64. |
| * It should work readily on any ANSI/POSIX-conforming unix. |
| |
| The distribution includes the library and support utilities, including |
| * [1]captoinfo, a termcap conversion tool |
| * [2]clear, utility for clearing the screen |
| * [3]infocmp, the terminfo decompiler |
| * [4]tabs, set tabs on a terminal |
| * [5]tic, the terminfo compiler |
| * [6]toe, list (table of) terminfo entries |
| * [7]tput, utility for retrieving terminal capabilities in shell |
| scripts |
| * [8]tset, to initialize the terminal |
| |
| Full manual pages are provided for the library and tools. |
| |
| The ncurses distribution is available via anonymous FTP at the GNU |
| distribution site |
| |
| [9]ftp://ftp.gnu.org/gnu/ncurses/ . |
| |
| It is also available at |
| |
| [10]ftp://invisible-island.net/ncurses/ . |
| |
| Release Notes |
| |
| These notes are for ncurses 6.0, released August 8, 2015. |
| |
| This release is designed to be source-compatible with ncurses 5.0 |
| through 5.9; providing a new application binary interface (ABI). |
| Although the source can still be configured to support the ncurses 5 |
| ABI, the intent of the release is to provide extensions which are |
| generally useful, but binary-incompatible with ncurses 5: |
| * Extend the cchar_t structure to allow more than 16 colors to be |
| encoded. |
| * Modify the encoding of mouse state to make room for a 5th mouse |
| button. That allows one to use ncurses with a wheel mouse with |
| xterm or similar X terminal emulators. |
| |
| There are, of course, numerous other improvements, including |
| * fixes made based on the Clang and Coverity static analyzers. |
| * memory leak fixes using Valgrind |
| |
| The release notes mention some bug-fixes, but are focused on new |
| features and improvements to existing features log since ncurses 5.9 |
| release. |
| |
| While the intent of the release is to provide a new stable ABI, there |
| are other development activities which are summarized below. |
| * The original release plan, e.g., for "5.10" was to improve the |
| MinGW port. Ultimately that was completed (wide-character support, |
| mouse, etc), but was deferred to focus on termcap support and |
| performance issues. Also, pinpointing the problems with Console2 |
| took a while. |
| * A review of termcap compatibility in 2011 led to several minor |
| fixes in the library and improvements to utilities. To do this |
| properly, a review of the various extent termcap implementations |
| was needed. |
| The [11]termcap library checker (tctest) (not part of ncurses) was |
| one result. A followup review of performance using |
| [12]ncurses-examples in 2014 led to additional improvements. |
| * Output buffering provided a further, but worthwhile distraction. A |
| bug report in 2012 regarding the use of signal handlers in |
| ncurses) pointed out [13]a problem with the use of unsafe |
| functions for handling SIGTSTP. Other signals could be addressed |
| with workarounds; repairing SIGTSTP required a different approach. |
| The solution required changing internal behavior of the library: |
| how it handles output buffering. |
| Now ncurses buffers its own output, independently of the standard |
| output. A few applications relied upon the library's direct reuse |
| of the standard output buffering; however that is unspecified |
| behavior and has never been a recommended practice. Identifying |
| these applications as well as refining the change to permit |
| low-level applications to work consistently took time. |
| * Since the introduction of the experimental support for 256 colors |
| early in [14]2005 (released in [15]ncurses 5.5), there has been |
| increased user interest. Almost all packagers continue providing |
| the ncurses ABI 5 which cannot support 256 colors. |
| * Symbol versioning, or the lack of it in ncurses, is the main |
| reason why packagers would be reluctant to add a new ncurses ABI. |
| This release provides the new ABI along with script-generated |
| lists of versioned symbols which can be used for both ABI 5 and 6 |
| (with distinct names to keep the two separate). This took time to |
| development, as reported in [16]Symbol versioning in ncurses. |
| |
| Library improvements |
| |
| Output buffering |
| |
| X/Open curses provides more than one initialization function: |
| * [17]initscr (the simplest) accepts no parameters. |
| * [18]newterm accepts parameters for the stream input and output |
| * [19]setupterm (the low-level function) accepts a parameter for the |
| file descriptor of the output. |
| |
| They are documented in X/Open as if initscr calls newterm using stdout |
| for output stream, and in turn newterm calls setupterm using |
| fileno(stdout) for the file descriptor. As long as an implementation |
| acts as if it does this, it conforms. In practice, implementations do |
| what is implied. This creates a problem: the low-level setupterm |
| function's file descriptor is unbuffered, while newterm implies |
| buffered output. X/Open Curses says that all output is done through |
| the file descriptor, and does not say how the output stream is |
| actually used. |
| |
| Initially, ncurses used the file descriptor (obtained from the output |
| stream passed to newterm) for changing the terminal modes, and relied |
| upon the output parameter of newterm for buffered output. Later (to |
| avoid using unsafe buffered I/O in signal handlers), ncurses was |
| modified to use the file descriptor (unbuffered output) when cleaning |
| up on receipt of a signal. Otherwise (when not handling a signal), it |
| continued to use the buffered output. |
| |
| That approach worked reasonably well and as a side effect, using the |
| same buffered output as an application might use for printf meant that |
| no flushing was needed when switching between normal- and |
| screen-modes. |
| |
| There were a couple of problems: |
| * to get good performance, curses (not only ncurses, but SVr4 curses |
| in general) set an output buffer using setbuf or similar function. |
| There is no standard (or portable) way to turn that output buffer |
| off, and revert to line-buffering. The [20]NCURSES_NO_SETBUF |
| environment variable did make it optional. |
| * to handle SIGTSTP (the "stop" signal), ncurses relied upon unsafe |
| functions. That is, due to the complexity of the feature, it |
| relied upon reusing existing functions which should not have been |
| called via the signal handler. |
| |
| Conveniently, solving the second problem (by making ncurses do its own |
| output buffering) also fixed the first one. But there were special |
| cases to resolve: [21]low-level functions such as mvcur, putp, vidattr |
| explicitly use the standard output. Those functions were reused |
| internally, and required modification to distinguish whether they were |
| used by the high-level or low-level interfaces. |
| |
| Finally, there may still be a few programs which should be modified to |
| improve their portability, e.g., adding an |
| |
| fflush(stdout); |
| |
| when switching from "[22]shell" mode to "[23]program" (curses) mode. |
| Those are fairly rare because most programmers have learned not to mix |
| printf and [24]printw. |
| |
| Symbol versioning |
| |
| This release introduces symbol-versioning to ncurses because without |
| it, the change of ABI would be less successful. A lengthy discussion |
| will be presented in [25]Symbol versioning in ncurses. These notes |
| summarize what has changed, and what can be done with the new release. |
| |
| Symbol-versioning allows the developers of a library to mark each |
| public symbol (both data and functions) with an identifier denoting |
| the library name and the version for which it was built. By doing |
| this, users of the library have a way to help ensure that applications |
| do not accidentally load an incompatible library. In addition, private |
| symbols can be hidden entirely. |
| |
| This release provides sample files for the four principal |
| configurations of ncurses libraries: ncurses, ncursesw, ncursest and |
| ncursestw. Each sample is given in two forms: |
| |
| ".map" |
| These list all public symbols, together with version names. |
| |
| ".sym" |
| These list all public symbols, without version names. |
| |
| The sample files are generated by scripts which take into account a |
| few special cases such as [26]tack to omit many of the ncurses private |
| symbols (beginning with "_nc_"). Here are counts of globals versus |
| locals: |
| |
| Config Symbols Globals Locals "_nc_" |
| ncurses 976 796 180 332 |
| ncursesw 1089 905 184 343 |
| ncursest 979 804 175 358 |
| ncursestw 1098 914 184 372 |
| |
| Although only four sample configurations are presented, each is formed |
| by merging symbols from several combinations of configure-script |
| options, taking into account advice from downstream packagers. Because |
| they are formed by merging, the sample files may list a symbol which |
| is not in a given package. That is expected. The samples have been |
| tested and are working with systems (such as Fedora, FreeBSD and |
| Debian) which fully support this feature. There are other systems |
| which do not support the feature, and a few (such as Solaris) which |
| provide incomplete support. |
| |
| The version-naming convention used allows these sample files to build |
| distinct libraries for ABI 5 and 6. Version names consist of |
| * configuration name, e.g., "NCURSESW" for the wide-character |
| libraries |
| * ABI version (if not 5) |
| * library name for two special cases which have the same interface |
| across configurations: "TINFO" and "TIC" |
| * release version |
| * patch date (for the release version) |
| |
| For example, running nm -D on the libraries in the ncurses6 test |
| package shows these symbol-versions: |
| |
| 0000000000000000 A NCURSES6_TIC_5.0.19991023 |
| 0000000000000000 A NCURSES6_TIC_5.1.20000708 |
| 0000000000000000 A NCURSES6_TIC_5.5.20051010 |
| 0000000000000000 A NCURSES6_TIC_5.7.20081102 |
| 0000000000000000 A NCURSES6_TIC_5.9.20150530 |
| 0000000000000000 A NCURSES6_TINFO_5.0.19991023 |
| 0000000000000000 A NCURSES6_TINFO_5.1.20000708 |
| 0000000000000000 A NCURSES6_TINFO_5.2.20001021 |
| 0000000000000000 A NCURSES6_TINFO_5.3.20021019 |
| 0000000000000000 A NCURSES6_TINFO_5.4.20040208 |
| 0000000000000000 A NCURSES6_TINFO_5.5.20051010 |
| 0000000000000000 A NCURSES6_TINFO_5.6.20061217 |
| 0000000000000000 A NCURSES6_TINFO_5.7.20081102 |
| 0000000000000000 A NCURSES6_TINFO_5.8.20110226 |
| 0000000000000000 A NCURSES6_TINFO_5.9.20150530 |
| 0000000000000000 A NCURSESW6_5.1.20000708 |
| 0000000000000000 A NCURSESW6_5.3.20021019 |
| 0000000000000000 A NCURSESW6_5.4.20040208 |
| 0000000000000000 A NCURSESW6_5.5.20051010 |
| 0000000000000000 A NCURSESW6_5.6.20061217 |
| 0000000000000000 A NCURSESW6_5.7.20081102 |
| 0000000000000000 A NCURSESW6_5.8.20110226 |
| 0000000000000000 A NCURSESW6_5.9.20150530 |
| |
| As a special case, this release (which makes the final change for ABI |
| 5) is marked with release version 5.9 and patch date 20150530. |
| |
| Miscellaneous |
| |
| The new release has several improvements for performance and building. |
| For instance: |
| * several files in ncurses- and progs-directories were modified to |
| allow const data used in internal tables to be put by the linker |
| into the readonly text segment. |
| * various improvements were made to building the Ada95 binding, both |
| in simplifying the generated files as well as improving the way it |
| uses gnatmake |
| |
| There are also new features in the libraries: |
| * added [27]use_tioctl function |
| * added [28]wgetdelay to retrieve _delay member of WINDOW if it |
| happens to be opaque, e.g., in the pthread configuration. |
| * added [29]A_ITALIC extension. |
| * added form library extension [30]O_DYNAMIC_JUSTIFY option which |
| can be used to override the different treatment of justification |
| for static versus dynamic fields . |
| * rewrote [31]putwin and [32]getwin, making an extended version |
| which is capable of reading screen-dumps between the wide/normal |
| ncurses configurations. These are text files, except for a magic |
| code at the beginning: |
| |
| 0 string \210\210 Screen-dump (ncurses) |
| |
| * several changes to mouse support include: |
| + added decoder for xterm SGR 1006 mouse mode. |
| + added experimental support for "%u" format to terminfo. |
| + improved behavior of wheel-mice for xterm protocol: noting |
| that there are only button-presses for buttons "4" and "5", |
| so there is no need to wait to combine events into |
| double-clicks . |
| |
| There are a few new configure options dealing with library |
| customization: |
| * add "--enable-ext-putwin" configure option to turn on the extended |
| putwin/getwin. By default, this is enabled for ABI 6 and disabled |
| with ABI 5. |
| * add "--enable-string-hacks" option to control whether strlcat and |
| strlcpy may be used. Because ncurses already does the requisite |
| buffer-limit checks, this feature is mainly of interest to quiet |
| compiler-warnings on a few systems. |
| * add configure option "--with-tparm-arg" to allow [33]tparm's |
| parameters to be something more likely to be the same size as a |
| pointer, e.g., intptr_t (again, the default is set for ABI 6). |
| |
| Program improvements |
| |
| Utilities |
| |
| Most of the termcap-related changes based on development of [34]tctest |
| (termcap library checker) are implemented in the tic and infocmp |
| programs rather than affecting the library. As noted in the |
| [35]discussion of tctest, ncurses's ability to translate between |
| terminfo and termcap formats has been improved at different times, but |
| subject to feedback from "real" termcap users. There are very few of |
| those. Nowadays, virtually all termcap users are using ncurses (or |
| NetBSD, with its own terminfo library) and their programs are actually |
| using terminfo rather than termcap data. |
| |
| Still, there are a few. A comment about the translation of the ASCII |
| NUL character prompted a review: |
| * Both terminfo and termcap store string capabilities as |
| NUL-terminated strings. |
| * In terminfo, a \0 in a terminal description is stored as \200. |
| * There are no (known) terminals which would behave differently when |
| sent \0 or \200. |
| * When translating to terminfo format (or displaying a printable |
| version of an entry using infocmp), ncurses shows \200 as \0. |
| * It has done this since 1998 (quoting from the NEWS file): |
| |
| [36]980103 |
| ... |
| + modify _nc_tic_expand() to generate \0 rather than \200. |
| ... |
| + correct translation of terminfo "^@", to \200, like \0. |
| |
| * However, the _nc_tic_expand function (which optionally produces |
| terminfo or termcap format) did not address this special case for |
| termcap. Even the later 4.4BSD [37]cgetstr interprets a \0 |
| literally, ending that string (rather than using the terminfo |
| improvement). |
| |
| As a result of the review, several improvements were made to ncurses |
| translation to/from termcap format -- and improving the checks made in |
| tic for consistency of entries. Most of these are not of general |
| interest, except for two new command-line options for tic and infocmp: |
| * the "-0" option generates termcap/terminfo source on a single |
| line. |
| * the "-K" option provides stricter BSD-compatibility for termcap |
| output. |
| |
| Other user-visible improvements and new features include: |
| * added "-D" option to tic and infocmp, to show the database |
| locations that it could use. |
| * added "-s" option to toe, to sort its output. |
| * extended "-c" and "-n" options of infocmp to allow comparing more |
| than two entries. |
| * modified toe's report when "-a" and "-s" options are combined, to |
| add a column showing which entries belong to a given database. |
| * modified the clear program to take into account the "E3" extended |
| capability to clear the terminal's scrollback buffer. |
| |
| Examples |
| |
| Along with the library and utilities, many improvements were made to |
| the [38]ncurses-examples. Some were made to allow building (and |
| comparison-testing) against NetBSD curses and PDCurses. Both lack some |
| of the X/Open Curses features, necessitating customization. But this |
| activity was useful because it showed some remaining performance |
| issues (which have been resolved in this release). |
| |
| These changes were made to verify compatibility or compare performance |
| of ncurses: |
| * made workarounds for compiling test-programs with NetBSD curses, |
| though it lacks some common functions such as [39]use_env. |
| * added dots_termcap test-program |
| * added dots_curses test-program, for comparison with the low-level |
| examples. |
| * added test_setupterm test-proram to demonstrate normal/error |
| returns from the setupterm and restartterm functions. |
| * added "-d", "-e" and "-q" options to the demo_terminfo and |
| demo_termcap test-programs. |
| * added "-y" option to demo_termcap and test/demo_terminfo |
| test-programs to demonstrate behavior with/without extended |
| capabilities. |
| * modified demo_termcap and demo_terminfo test-programs to make |
| their options more directly comparable, and add "-i" option to |
| specify a terminal description filename to parse for names to |
| lookup. |
| * rewrote the tests for [40]mvderwin and test for recursive |
| [41]mvwin in the movewindow test-program. |
| |
| These changes were made to help with the MinGW port: |
| * added test-screens to the ncurses test-program to show |
| 256-characters at a time, to help with MinGW port. |
| * modified the view test-program to load UTF-8 when built with MinGW |
| by using regular win32 API because the MinGW functions mblen and |
| mbtowc do not work. |
| * added "-s" option to the view test-program to allow it to start in |
| single-step mode, reducing size of trace files when it is used for |
| debugging MinGW changes. |
| |
| These changes were made to verify new extensions in ncurses: |
| * added [42]form_driver_w entrypoint to wide-character forms |
| library, as well as form_driver_w test-program. |
| * modified ncurses test-program's b/B tests to display lines only |
| for the attributes which a given terminal supports, to make room |
| for an italics test. |
| * modified ncurses test-program, adding "-E" and "-T" options to |
| demonstrate use_env versus use_tioctl. |
| * modified ncurses test-program's c/C tests to cycle through subsets |
| of the total number of colors, to better illustrate |
| 8/16/88/256-colors by providing directly comparable screens. |
| * modified the ncurses test-program to also show position reports in |
| 'a' test. |
| |
| These changes were made to make the examples more useful: |
| * added scripts for building dpkg and rpm test-packages |
| * modified the hanoi test-program to show the minimum number of |
| moves possible for the given number of tiles. |
| * modified the knight test-program to show the number of choices |
| possible for each position in automove option, e.g., to allow user |
| to follow Warnsdorff's rule to solve the puzzle. |
| |
| Terminal database |
| |
| This release provides improvements to tic's "-c" checking option, |
| which was used for example to |
| * make sgr in several entries agree with other caps. |
| * correct padding in some entries where earlier versions had |
| miscounted the number of octal digits. |
| |
| There are several new terminal descriptions: |
| * [43]mlterm is now aliased to mlterm3 |
| * [44]nsterm is now derived from nsterm-256color |
| * [45]putty-sco |
| * [46]teken is FreeBSD's "xterm" console. |
| * [47]terminator |
| * [48]terminology |
| * [49]tmux is derived from screen. |
| * several screen.XXX entries support the respective variations for |
| 256 colors. |
| * [50]simpleterm is now 0.5 |
| * [51]vte is aliased to vte-2012 |
| * [52]vt520ansi |
| |
| A few entries use extensions (user-defined terminal capabilities): |
| * E3, used in linux, putty and xterm-basic is tested in the |
| [53]clear program to erase a terminal's scrollback. |
| * TS is used in the [54]xterm+sl building block to help deprecate |
| the misuse of tsl for xterm's title-string. |
| * XT is used in some terminfo entries to improve usefulness for |
| other applications than screen, which would like to pretend that |
| xterm's title is a status-line. |
| * xm is used in examples [55]xterm-1005 and [56]xterm-1006 to |
| illustrate a way to make mouse handling more general |
| |
| A few terminals support italics and/or dim capabilities. In |
| particular, screen does not. Documented that, and accommodated the |
| terminals where this feature works with the A_ITALIC extension. |
| * konsole, mlterm3 (italics) |
| * nsterm (dim) |
| * screen (dim) |
| * vte (dim, italics) |
| * xterm (dim, italics) |
| |
| Documentation |
| |
| As usual, this release |
| * improves documentation by describing new features, |
| * attempts to improve the description of features which users have |
| found confusing |
| * fills in overlooked descriptions of features which were described |
| in the [57]NEWS file but treated sketchily in manual pages. |
| |
| In addition, the mechanism for producing HTML versions of the |
| documentation has been improved: |
| * use an improved version of [58]man2html to generate html manpages. |
| * regenerated [59]NCURSES-Programming-HOWTO.html to fix some of the |
| broken html emitted by docbook. |
| |
| Interesting bug-fixes |
| |
| * Ada95 binding: |
| + modify makefile rules to ensure that the PIC option is not |
| used when building a static library |
| + make Ada95 build-fix for big-endian architectures such as |
| sparc. This undoes one of the fixes from [60]20110319, which |
| added an "Unused" member to representation clauses, replacing |
| that with pragmas to suppress warnings about unused bits. |
| * Color and attributes: |
| + parenthesize parameter of COLOR_PAIR and PAIR_NUMBER in |
| curses.h in case it happens to be a comma-expression. |
| + improve [61]20021221 workaround for broken acs, handling a |
| case where that ACS_xxx character is not in the acsc string |
| but there is a known wide-character which can be used. |
| + modify [62]init_pair to accept -1's for color value after |
| [63]assume_default_colors has been called. |
| + add a check in [64]start_color to limit color-pairs to 256 |
| when extended colors are not supported. |
| * Resizing the screen: |
| + propagate error-returns from wresize, i.e., the internal |
| increase_size and decrease_size functions through |
| [65]resize_term. |
| + add check for zero/negative dimensions for resizeterm and |
| resize_term. |
| + modify resizeterm to always push a KEY_RESIZE onto the fifo, |
| even if screensize is unchanged. Modify library to push a |
| KEY_RESIZE if there was a SIGWINCH, even if it does not call |
| resizeterm). These changes eliminate the case where a |
| SIGWINCH is received, but ERR is returned from wgetch or |
| wgetnstr because the screen dimensions did not change. |
| * Low-level interfaces |
| + fix an old bug in the termcap emulation; "%i" was ignored in |
| tparm because the parameters to be incremented were already |
| on the internal stack. |
| + change "%l" behavior in tparm to push the string length onto |
| the stack rather than saving the formatted length into the |
| output buffer. |
| + modify name-comparison for tgetstr, etc., to accommodate |
| legacy applications as well as to improve compatbility with |
| BSD 4.2 termcap implementations (see note for [66]980725). |
| * High-level interfaces |
| + modify internal recursion in wgetch which handles cooked mode |
| to check if the call to wgetnstr returned an error. This can |
| happen when both nocbreak and nodelay are set, for instance |
| (see note for [67]960418). |
| + add a check in internal function waddch_nosync to ensure that |
| tab characters are treated as control characters; some broken |
| locales claim they are printable. |
| + modify menu library to ensure that a menu's top-row is |
| adjusted as needed to ensure that the current item is on the |
| screen |
| + fix special case where double-width character overwrites a |
| single- width character in the first column. |
| |
| Configuration changes |
| |
| Major changes |
| |
| The ncurses 6.0 configure script makes changes to the default value of |
| several configure options, depending on the --with-abi-version option |
| (i.e., whether its value is "5" or "6"): |
| |
| --enable-const |
| Feature introduced in [68]970405 supports the use of const |
| where X/Open Curses should have, but did not. NetBSD curses |
| does something similar with const. |
| |
| --enable-ext-colors |
| Extends the cchar_t structure to allow more than 16 colors to |
| be encoded. This applies only to the wide-character |
| (--enable-widec) configuration. |
| |
| --enable-ext-mouse |
| Modifies the encoding of mouse state to make room for a 5th |
| mouse button. That allows one to use ncurses with a wheel mouse |
| with xterm or similar X terminal emulators. |
| |
| --enable-ext-putwin |
| Modifies the file-format written by putwin to use printable |
| text rather than binary files, allowing getwin to read screen |
| dumps written by differently-configured ncurses libraries. The |
| extended getwin can still read binary screen dumps from the |
| same configuration of ncurses. This does not change the ABI |
| (the binary interface seen by calling applications). |
| |
| --enable-interop |
| Modifies the FIELDTYPE structure used for the form library to |
| make it more generic. |
| |
| --enable-lp64 |
| Allows an application to define _LP64 to declare chtype and |
| mmask_t as simply "unsigned" rather than the configured types |
| using the --with-chtype and --with-mmask_t options. |
| |
| --enable-sp-funcs |
| Compile-in support for extended functions which accept a SCREEN |
| pointer, reducing the need for juggling the global SP value |
| with [69]set_term and [70]delscreen. |
| |
| --with-chtype=uint32_t |
| Makes chtype explicitly a 32-bit unsigned value. |
| |
| --with-mmask_t=uint32_t |
| Makes mmask_t explicitly a 32-bit unsigned value. |
| |
| --with-tparm-arg=intptr_t |
| X/Open Curses declares [71]tparm using long for each of the |
| parameters aside from the formatting string, presuming that |
| long and char* are the same size. This configure option uses |
| intptr_t which provides a better guarantee of the sizes. |
| |
| The configure script no longer checks for antique compilers; c89 is |
| assumed as a minimum. There are a few features from later revisions |
| which are used when available. The configure script makes checks to |
| turn on useful warnings from clang, gcc and icc. You should be able to |
| build ncurses 6.0 with any of the current (or not so current) C |
| compilers available in 2015. |
| |
| The configure script, by the way, makes changes which do not work with |
| systems whose /bin/sh is non-POSIX. This mainly affects Solaris (the |
| other vendor unix systems have followed the POSIX guidelines for the |
| past twenty years). If you must build on Solaris, its [72]xpg4 |
| binaries suffice, e.g., |
| |
| #!/bin/sh |
| WHAT=`hostname|sed -e 's/\..*//'` |
| OUT=configure.out |
| cat >>$OUT <<EOF/ |
| ** `date` |
| ** node: $WHAT |
| ** user: `id` |
| ** conf: $* |
| EOF/ |
| |
| SHELL=/bin/sh |
| if test -f /usr/xpg4/bin/sh |
| then |
| CONFIG_SHELL=/usr/xpg4/bin/sh |
| export CONFIG_SHELL |
| SHELL=$CONFIG_SHELL |
| fi |
| |
| rm -f config.status config.cache |
| TOP=$HOME/$WHAT |
| $SHELL ./configure --verbose \ |
| --disable-echo \ |
| --disable-overwrite \ |
| --enable-warnings \ |
| --with-warnings \ |
| --prefix=$TOP $* 2>&1 | tee -a $OUT |
| |
| Other major changes to the configure script include: |
| * ABI 6 is now the default, intending that the existing ABI 5 should |
| build as before using the "--with-abi-version=5" option. |
| * added --with-extra-suffix option to help with installing |
| nonconflicting ncurses6 packages, e.g., avoiding header- and |
| library-conflicts. |
| NOTE: as a side-effect, this renames |
| |
| adacurses-config to adacurses5-config and |
| adacursesw-config to adacursesw5-config |
| * the configure script looks for gnatgcc if the Ada95 binding is |
| built, in preference to the default gcc/cc. The script also |
| ensures that the Ada95 binding is built with the level of |
| optimization as the C libraries. |
| * the configure script captures define's related to -D_XOPEN_SOURCE |
| from the configure check and adds those to the *-config and *.pc |
| files, to simplify use for the wide-character libraries. |
| |
| Configuration options |
| |
| There are several new (or extended) configure options: |
| |
| --disable-db-install |
| Do not install the terminal database. This is used to omit |
| features for packages, as done with --without-progs. The option |
| simplifies building cross-compile support packages. |
| |
| --disable-gnat-projects |
| This option is used for regression testing |
| |
| --disable-lib-suffixes |
| Suppress the "w", "t" or "tw" suffixes which normally would be |
| added to the library names for the --enable-widec and |
| --with-pthread options. |
| |
| --with-cxx-shared |
| When --with-shared is set, build libncurses++ as a shared |
| library. This implicitly relies upon building with gcc/g++, |
| since other compiler suites may have differences in the way |
| shared libraries are built. libtool by the way has similar |
| limitations. |
| |
| --with-hashed-db |
| Extended this configure option to simplify building with |
| different versions of Berkeley database using FreeBSD ports. |
| |
| --with-pc-suffix |
| If ".pc" files are installed, optionally add a suffix to the |
| files and corresponding package names to separate unusual |
| configurations. If no option value is given (or if it is |
| "none"), no suffix is added. This option is used in the test |
| package for ncurses6. |
| |
| --with-xterm-kbs |
| Configure xterm's terminfo entries to use either BS (^H, i.e., |
| ASCII backspace) or DEL (^?, or 127). |
| |
| Portability |
| |
| MinGW |
| |
| Most of the portability-related work since [73]ncurses 5.9 extended |
| and improved the MinGW port introduced in [74]ncurses 5.8. |
| |
| The MinGW port can be readily cross-compiled: |
| * modified configure script to allow creating dll's for MinGW when |
| cross-compiling. |
| * enforced Windows-style path-separator if cross-compiling, |
| * added scripts for test-builds of cross-compiled packages for |
| ncurses6 to MinGW. |
| * added pc-files to the MinGW cross-compiling test-packages. |
| * added script for building test-packages of binaries cross-compiled |
| to MinGW using NSIS. |
| * added nc_mingw.h to installed headers for MinGW port; this is |
| needed for cross-compiling [75]ncurses-examples. |
| * added test-packages for cross-compiling ncurses-examples using the |
| MinGW test-packages. |
| |
| The MinGW-specific Windows driver accounts for several changes: |
| * wide-character display is made usable by replacing MinGW's |
| non-working wcrtomb and wctomb functions. |
| * implemented some display features: [76]beep, [77]flash, |
| [78]curs_set. |
| * the driver handles repainting on endwin/refresh combination. |
| * modified treatment of TERM variable for MinGW port to allow |
| explicit use of the Windows console driver by checking if $TERM is |
| set to "#win32console" or an abbreviation of that. |
| * the Windows driver also matches the special TERM value "unknown" |
| * the driver now returns characters for special keys, (like ansi.sys |
| does), when keypad mode is off, rather than returning nothing at |
| all. |
| * the driver checks a new environment variable [79]NCURSES_CONSOLE2 |
| to optionally work around a deficiency in Console2 (and its |
| descendent ConsoleZ) which hang when an application creates a |
| console buffer. |
| |
| Finally, there are other improvements: |
| * MinGW is one of the configurations where ncurses installs by |
| default into /usr |
| * configuration for cross-compiling uses AC_CHECK_TOOLS in |
| preference to AC_PATH_PROGS when searching for ncurses*-config, |
| e.g., in Ada95/configure and test/configure. |
| * extend Windows support to work with MSYS2; |
| + this works with a scenario where there is an ANSI-escape |
| handler such as ansicon running in the console window. |
| + wrap isatty calls with a macro, provide a corresponding set |
| of support routines to address differences between MinGW and |
| MSYS2. |
| * ensure WINVER is defined in makefiles rather than using headers. |
| * add check for the gnatprep "-T" option. |
| * work around a bug introduced by [80]gcc 4.8.1 in MinGW which |
| breaks "trace" feature. |
| * add a driver-name method to each of the drivers. |
| |
| Other ports |
| |
| These changes affect certain platforms (ports): |
| * the configure script knows how to build shared libraries with |
| DragonFlyBSD and Interix. |
| * support for AIX shared libraries is improved, tested with AIX 5.3, |
| 6.1 and 7.1 with both gcc 4.2.4 and cc: |
| + the shared-library suffix for AIX 5 and 6 is now ".so" |
| + the -brtl option is used with AIX 5-7; it is needed to link |
| with the shared libraries. |
| * the configure --enable-pc-files option takes into account the |
| [81]PKG_CONFIG_PATH variable. |
| * the configure option --with-pkg-config-libdir provides control |
| over the actual directory into which pc-files are installed. |
| * the build scripts add explicit -ltinfo, etc., to the generated |
| ".pc" file when ld option "--as-needed" is used, or when ncurses |
| and tinfo are installed without using rpath. |
| * the configure script disallows conflicting options |
| "--with-termlib" and "--enable-term-driver". |
| * the check for missing c++ compiler to work when no error is |
| reported, and no variables set is improved (see note for |
| [82]20021206). |
| * the misc/gen_edit.sh script selects a "linux" entry which works |
| with the current kernel rather than assuming it is always |
| "linux3.0" |
| * the test/configure script makes it simpler to override names of |
| curses-related libraries, to help with linking with pdcurses in |
| MinGW environment. |
| * the configure-script/ifdef's allow the BSD OLD_TTY feature to be |
| suppressed if the type of ospeed is configured using the option |
| --with-ospeed to not be a short. By default, it is a short for |
| termcap-compatibility. |
| * the MKlib_gen.sh script works around a recent change in gcc 5 |
| (released [83]mid-2015) which essentially emits multiple #line |
| statements for the same position in a file. |
| * the configure script works with Minix3.2 (see [84]note on |
| portability) |
| * OS/2 redux: |
| + the configure script supports OS/2 kLIBC. |
| + the --with-lib-prefix option allows configuring for old/new |
| flavors of OS/2 EMX. |
| * improved configure-script checks for _XOPEN_SOURCE: |
| + the definition works starting with Solaris 10. |
| + the definition is suppressed for IRIX64, since its header |
| files have a conflict versus _SGI_SOURCE. |
| _________________________________________________________________ |
| |
| Features of ncurses |
| |
| The ncurses package is fully upward-compatible with SVr4 (System V |
| Release 4) curses: |
| * All of the SVr4 calls have been implemented (and are documented). |
| * ncurses supports all of the for SVr4 curses features including |
| keyboard mapping, color, forms-drawing with ACS characters, and |
| automatic recognition of keypad and function keys. |
| * ncurses provides these SVr4 add-on libraries (not part of X/Open |
| Curses): |
| + the panels library, supporting a stack of windows with |
| backing store. |
| + the menus library, supporting a uniform but flexible |
| interface for menu programming. |
| + the form library, supporting data collection through |
| on-screen forms. |
| * ncurses's terminal database is fully compatible with that used by |
| SVr4 curses. |
| + ncurses supports user-defined capabilities which it can see, |
| but which are hidden from SVr4 curses applications using the |
| same terminal database. |
| + It can be optionally configured to match the format used in |
| related systems such as AIX and Tru64. |
| + Alternatively, ncurses can be configured to use hashed |
| databases rather than the directory of files used by SVr4 |
| curses. |
| * The ncurses utilities have options to allow you to filter terminfo |
| entries for use with less capable curses/terminfo versions such as |
| the HP/UX and AIX ports. |
| |
| The ncurses package also has many useful extensions over SVr4: |
| * The API is 8-bit clean and base-level conformant with the X/OPEN |
| curses specification, XSI curses (that is, it implements all BASE |
| level features, and most EXTENDED features). It includes many |
| function calls not supported under SVr4 curses (but portability of |
| all calls is documented so you can use the SVr4 subset only). |
| * Unlike SVr3 curses, ncurses can write to the rightmost-bottommost |
| corner of the screen if your terminal has an insert-character |
| capability. |
| * Ada95 and C++ bindings. |
| * Support for mouse event reporting with X Window xterm and FreeBSD |
| and OS/2 console windows. |
| * Extended mouse support via Alessandro Rubini's gpm package. |
| * The function wresize allows you to resize windows, preserving |
| their data. |
| * The function use_default_colors allows you to use the terminal's |
| default colors for the default color pair, achieving the effect of |
| transparent colors. |
| * The functions keyok and define_key allow you to better control the |
| use of function keys, e.g., disabling the ncurses KEY_MOUSE, or by |
| defining more than one control sequence to map to a given key |
| code. |
| * Support for 256-color terminals, such as modern xterm. |
| * Support for 16-color terminals, such as aixterm and modern xterm. |
| * Better cursor-movement optimization. The package now features a |
| cursor-local-movement computation more efficient than either BSD's |
| or System V's. |
| * Super hardware scrolling support. The screen-update code |
| incorporates a novel, simple, and cheap algorithm that enables it |
| to make optimal use of hardware scrolling, line-insertion, and |
| line-deletion for screen-line movements. This algorithm is more |
| powerful than the 4.4BSD curses quickch routine. |
| * Real support for terminals with the magic-cookie glitch. The |
| screen-update code will refrain from drawing a highlight if the |
| magic- cookie unattributed spaces required just before the |
| beginning and after the end would step on a non-space character. |
| It will automatically shift highlight boundaries when doing so |
| would make it possible to draw the highlight without changing the |
| visual appearance of the screen. |
| * It is possible to generate the library with a list of pre-loaded |
| fallback entries linked to it so that it can serve those terminal |
| types even when no terminfo tree or termcap file is accessible |
| (this may be useful for support of screen-oriented programs that |
| must run in single-user mode). |
| * The [85]tic/[86]captoinfo utility provided with ncurses has the |
| ability to translate many termcaps from the XENIX, IBM and AT&T |
| extension sets. |
| * A BSD-like [87]tset utility is provided. |
| * The ncurses library and utilities will automatically read terminfo |
| entries from $HOME/.terminfo if it exists, and compile to that |
| directory if it exists and the user has no write access to the |
| system directory. This feature makes it easier for users to have |
| personal terminfo entries without giving up access to the system |
| terminfo directory. |
| * You may specify a path of directories to search for compiled |
| descriptions with the environment variable TERMINFO_DIRS (this |
| generalizes the feature provided by TERMINFO under stock System |
| V.) |
| * In terminfo source files, use capabilities may refer not just to |
| other entries in the same source file (as in System V) but also to |
| compiled entries in either the system terminfo directory or the |
| user's $HOME/.terminfo directory. |
| * The table-of-entries utility [88]toe makes it easy for users to |
| see exactly what terminal types are available on the system. |
| * The library meets the XSI requirement that every macro entry point |
| have a corresponding function which may be linked (and will be |
| prototype-checked) if the macro definition is disabled with |
| #undef. |
| * Extensive documentation is provided (see the [89]Additional |
| Reading section of the [90]ncurses FAQ for online documentation). |
| |
| Applications using ncurses |
| |
| The ncurses distribution includes a selection of test programs |
| (including a few games). These are available separately as |
| [91]ncurses-examples |
| |
| The ncurses library has been tested with a wide variety of |
| applications including: |
| |
| cdk |
| Curses Development Kit |
| |
| [92]http://invisible-island.net/cdk/ |
| |
| ded |
| directory-editor |
| |
| [93]http://invisible-island.net/ded/ |
| |
| dialog |
| the underlying application used in Slackware's setup, and the |
| basis for similar install/configure applications on many |
| systems. |
| |
| [94]http://invisible-island.net/dialog/ |
| |
| lynx |
| the text WWW browser |
| |
| [95]http://lynx.isc.org/ |
| |
| Midnight Commander |
| file manager |
| |
| [96]http://www.midnight-commander.org/ |
| |
| mutt |
| mail utility |
| |
| [97]http://www.mutt.org/ |
| |
| ncftp |
| file-transfer utility |
| |
| [98]http://www.ncftp.com/ |
| |
| nvi |
| New vi uses ncurses. |
| |
| [99]https://sites.google.com/a/bostic.com/keithbostic/nvi |
| |
| tin |
| newsreader, supporting color, MIME |
| |
| [100]http://www.tin.org/ |
| |
| as well as some that use ncurses for the terminfo support alone: |
| |
| minicom |
| terminal emulator for serial modem connections |
| |
| [101]http://alioth.debian.org/projects/minicom/ |
| |
| mosh |
| a replacement for ssh. |
| |
| [102]https://mosh.mit.edu/ |
| |
| tack |
| terminfo action checker |
| |
| [103]http://invisible-island.net/ncurses/tack.html |
| |
| tmux |
| terminal multiplexor |
| |
| [104]http://tmux.github.io/ |
| |
| vile |
| vi-like-emacs may be built to use the terminfo, termcap or |
| curses interfaces. |
| |
| [105]http://invisible-island.net/vile/ |
| |
| and finally, those which use only the termcap interface: |
| |
| emacs |
| text editor |
| |
| [106]http://www.gnu.org/software/emacs/ |
| |
| screen |
| terminal multiplexor |
| |
| [107]http://www.gnu.org/software/screen/ |
| |
| vim |
| text editor |
| |
| [108]http://www.vim.org/ |
| |
| Development activities |
| |
| Zeyd Ben-Halim started ncurses from a previous package pcurses, |
| written by Pavel Curtis. Eric S. Raymond continued development. |
| Juergen Pfeifer wrote most of the form and menu libraries. Ongoing |
| development work is done by [109]Thomas Dickey. Thomas Dickey also |
| acts as the maintainer for the Free Software Foundation, which holds |
| the [110]copyright on ncurses. |
| |
| Contact the current maintainers at |
| |
| [111]bug-ncurses@gnu.org |
| |
| To join the ncurses mailing list, please write email to |
| |
| [112]bug-ncurses-request@gnu.org |
| |
| containing the line: |
| |
| subscribe <name>@<host.domain> |
| |
| This list is open to anyone interested in helping with the development |
| and testing of this package. |
| |
| Beta versions of ncurses and patches to the current release are made |
| available at |
| |
| [113]ftp://invisible-island.net/ncurses/ . |
| |
| There is an archive of the mailing list here: |
| |
| [114]http://lists.gnu.org/archive/html/bug-ncurses (also |
| [115]https) |
| |
| Related resources |
| |
| The release notes make scattered references to these pages, which may |
| be interesting by themselves: |
| * [116]man2html |
| * [117]ncurses licensing |
| * [118]Symbol versioning in ncurses |
| * [119]The MinGW port of ncurses |
| * [120]tack - terminfo action checker |
| * [121]tar versus portability |
| * [122]tctest - termcap library checker |
| * [123]Terminal Database |
| |
| Other resources |
| |
| The distribution provides a newer version of the terminfo-format |
| terminal description file once maintained by [124]Eric Raymond . |
| Unlike the older version, the termcap and terminfo data are provided |
| in the same file, and provides several user-definable extensions |
| beyond the X/Open specification. |
| |
| You can find lots of information on terminal-related topics not |
| covered in the terminfo file at [125]Richard Shuford's archive . |
| |
| * [126]Overview |
| * [127]Release Notes |
| + [128]Library improvements |
| o [129]Output buffering |
| o [130]Symbol versioning |
| o [131]Miscellaneous |
| + [132]Program improvements |
| o [133]Utilities |
| o [134]Examples |
| + [135]Terminal database |
| + [136]Documentation |
| + [137]Interesting bug-fixes |
| + [138]Configuration changes |
| o [139]Major changes |
| o [140]Configuration options |
| + [141]Portability |
| o [142]MinGW |
| o [143]Other ports |
| * [144]Features of ncurses |
| * [145]Applications using ncurses |
| * [146]Development activities |
| * [147]Related resources |
| * [148]Other resources |
| |
| References |
| |
| 1. http://invisible-island.net/ncurses/man/captoinfo.1m.html |
| 2. http://invisible-island.net/ncurses/man/clear.1.html |
| 3. http://invisible-island.net/ncurses/man/infocmp.1m.html |
| 4. http://invisible-island.net/ncurses/man/tabs.1.html |
| 5. http://invisible-island.net/ncurses/man/tic.1m.html |
| 6. http://invisible-island.net/ncurses/man/toe.1m.html |
| 7. http://invisible-island.net/ncurses/man/tput.1.html |
| 8. http://invisible-island.net/ncurses/man/tset.1.html |
| 9. ftp://ftp.gnu.org/gnu/ncurses/ |
| 10. ftp://invisible-island.net/ncurses/ |
| 11. http://invisible-island.net/ncurses/tctest.html |
| 12. http://invisible-island.net/ncurses/ncurses-examples.html |
| 13. http://lists.gnu.org/archive/html/bug-ncurses/2012-07/msg00029.html |
| 14. http://invisible-island.net/ncurses/NEWS.html#t20050101 |
| 15. http://invisible-island.net/ncurses/announce-5.5.html |
| 16. http://invisible-island.net/ncurses/ncurses-mapsyms.html |
| 17. http://invisible-island.net/ncurses/man/curs_initscr.3x.html#h3-initscr |
| 18. http://invisible-island.net/ncurses/man/curs_initscr.3x.html#h3-newterm |
| 19. http://invisible-island.net/ncurses/man/curs_terminfo.3x.html#h3-Initialization |
| 20. http://invisible-island.net/ncurses/man/ncurses.3x.html#h3-NCURSES_NO_SETBUF |
| 21. http://invisible-island.net/ncurses/man/curs_terminfo.3x.html |
| 22. http://invisible-island.net/ncurses/man/curs_kernel.3x.html#h3-reset_prog_mode_-reset_shell_mode |
| 23. http://invisible-island.net/ncurses/man/curs_kernel.3x.html#h3-reset_prog_mode_-reset_shell_mode |
| 24. http://invisible-island.net/ncurses/man/curs_printw.3x.html |
| 25. http://invisible-island.net/ncurses/ncurses-mapsyms.html |
| 26. http://invisible-island.net/ncurses/tack.html |
| 27. http://invisible-island.net/ncurses/man/curs_util.3x.html#h3-use_tioctl |
| 28. http://invisible-island.net/ncurses/man/curs_opaque.3x.html |
| 29. http://invisible-island.net/ncurses/man/curs_attr.3x.html#h2-PORTABILITY |
| 30. http://invisible-island.net/ncurses/man/form_field_opts.3x.html |
| 31. http://invisible-island.net/ncurses/man/curs_util.3x.html#h3-putwin_getwin |
| 32. http://invisible-island.net/ncurses/man/curs_util.3x.html#h3-putwin_getwin |
| 33. http://invisible-island.net/ncurses/man/curs_terminfo.3x.html#h3-Formatting-Output |
| 34. http://invisible-island.net/ncurses/tctest.html |
| 35. http://invisible-island.net/ncurses/tctest.html#my-better-translation |
| 36. http://invisible-island.net/ncurses/NEWS.html#t980103 |
| 37. https://svnweb.freebsd.org/base/head/lib/libc/gen/getcap.c?revision=244092&view=markup#l784 |
| 38. http://invisible-island.net/ncurses/ncurses-examples.html |
| 39. http://invisible-island.net/ncurses/man/curs_util.3x.html#h3-use_env |
| 40. http://invisible-island.net/ncurses/man/curs_window.3x.html#h3-derwin |
| 41. http://invisible-island.net/ncurses/man/curs_window.3x.html#h3-mvwin |
| 42. http://invisible-island.net/ncurses/man/form_driver.3x.html#h3-form_driver_w |
| 43. http://invisible-island.net/ncurses/terminfo.src.html#toc-_M_L_T_E_R_M |
| 44. http://invisible-island.net/ncurses/terminfo.src.html#tic-nsterm |
| 45. http://invisible-island.net/ncurses/terminfo.src.html#tic-putty-sco |
| 46. http://invisible-island.net/ncurses/terminfo.src.html#tic-teken |
| 47. http://invisible-island.net/ncurses/terminfo.src.html#toc-_T_E_R_M_I_N_A_T_O_R |
| 48. http://invisible-island.net/ncurses/terminfo.src.html#toc-_T_E_R_M_I_N_O_L_O_G_Y |
| 49. http://invisible-island.net/ncurses/terminfo.src.html#tic-tmux |
| 50. http://invisible-island.net/ncurses/terminfo.src.html#toc-_S_I_M_P_L_E_T_E_R_M |
| 51. http://invisible-island.net/ncurses/terminfo.src.html#tic-vte |
| 52. http://invisible-island.net/ncurses/terminfo.src.html#tic-vt520ansi |
| 53. http://aerie.jexium-island.net/ncurses/man/clear.1.html |
| 54. http://invisible-island.net/ncurses/terminfo.src.html#tic-xterm_sl |
| 55. http://invisible-island.net/ncurses/terminfo.src.html#tic-xterm-1005 |
| 56. http://invisible-island.net/ncurses/terminfo.src.html#tic-xterm-1006 |
| 57. http://invisible-island.net/ncurses/NEWS.html |
| 58. http://invisible-island.net/scripts/man2html.html |
| 59. http://invisible-island.net/ncurses/NCURSES-Programming-HOWTO.html |
| 60. http://invisible-island.net/ncurses/NEWS.html#t20110319 |
| 61. http://invisible-island.net/ncurses/NEWS.html#t20021221 |
| 62. http://invisible-island.net/ncurses/man/curs_color.3x.html#h3-Routine-Descriptions |
| 63. http://invisible-island.net/ncurses/man/default_colors.3x.html |
| 64. http://invisible-island.net/ncurses/man/curs_color.3x.html#h3-Routine-Descriptions |
| 65. http://invisible-island.net/ncurses/man/resizeterm.3x.html |
| 66. http://invisible-island.net/ncurses/NEWS.html#t980725 |
| 67. http://invisible-island.net/ncurses/NEWS.html#t960418 |
| 68. http://invisible-island.net/ncurses/NEWS.html#t970405 |
| 69. http://invisible-island.net/ncurses/man/curs_initscr.3x.html#h3-set_term |
| 70. http://invisible-island.net/ncurses/man/curs_initscr.3x.html#h3-delscreen |
| 71. http://invisible-island.net/ncurses/man/curs_terminfo.3x.html#h3-Formatting-Output |
| 72. http://docs.oracle.com/cd/E19253-01/html/817-0552/fhkpy.html |
| 73. http://invisible-island.net/ncurses/announce-5.9.html |
| 74. http://invisible-island.net/ncurses/announce-5.8.html |
| 75. http://invisible-island.net/ncurses/ncurses-examples.html |
| 76. http://invisible-island.net/ncurses/man/curs_beep.3x.html |
| 77. http://invisible-island.net/ncurses/man/curs_beep.3x.html |
| 78. http://invisible-island.net/ncurses/man/curs_kernel.3x.html#h3-curs_set |
| 79. http://invisible-island.net/ncurses/man/ncurses.3x.html#h3-NCURSES_CONSOLE2 |
| 80. http://stackoverflow.com/questions/20877689/gcc-4-8-1-minggw-d-option-does-not-work-as-usual |
| 81. http://linux.die.net/man/1/pkg-config |
| 82. http://invisible-island.net/ncurses/NEWS.html#t20021206 |
| 83. https://gcc.gnu.org/gcc-5/ |
| 84. http://invisible-island.net/autoconf/portability-test.html |
| 85. http://invisible-island.net/ncurses/man/tic.1m.html |
| 86. http://invisible-island.net/ncurses/man/captoinfo.1m.html |
| 87. http://invisible-island.net/ncurses/man/tset.1.html |
| 88. http://invisible-island.net/ncurses/man/toe.1m.html |
| 89. http://invisible-island.net/ncurses/ncurses.faq.html#additional_reading |
| 90. http://invisible-island.net/ncurses/ncurses.faq.html |
| 91. http://invisible-island.net/ncurses/ncurses-examples.html |
| 92. http://invisible-island.net/cdk/ |
| 93. http://invisible-island.net/ded/ |
| 94. http://invisible-island.net/dialog/ |
| 95. http://lynx.isc.org/ |
| 96. http://www.midnight-commander.org/ |
| 97. http://www.mutt.org/ |
| 98. http://www.ncftp.com/ |
| 99. https://sites.google.com/a/bostic.com/keithbostic/nvi |
| 100. http://www.tin.org/ |
| 101. http://alioth.debian.org/projects/minicom/ |
| 102. https://mosh.mit.edu/ |
| 103. http://invisible-island.net/ncurses/tack.html |
| 104. http://tmux.github.io/ |
| 105. http://invisible-island.net/vile/ |
| 106. http://www.gnu.org/software/emacs/ |
| 107. http://www.gnu.org/software/screen/ |
| 108. http://www.vim.org/ |
| 109. mailto:dickey@invisible-island.net |
| 110. http://invisible-island.net/ncurses/ncurses-license.html |
| 111. mailto:bug-ncurses@gnu.org |
| 112. mailto:bug-ncurses-request@gnu.org |
| 113. ftp://invisible-island.net/ncurses/ |
| 114. http://lists.gnu.org/archive/html/bug-ncurses |
| 115. https://lists.gnu.org/archive/html/bug-ncurses |
| 116. http://invisible-island.net/scripts/man2html.html |
| 117. http://invisible-island.nethttp://invisible-island.net/ncurses/ncurses-license.html |
| 118. http://invisible-island.net/ncurses/ncurses-mapsyms.html |
| 119. http://invisible-island.net/ncurses/ncurses-mingw.html |
| 120. http://invisible-island.net/ncurses/tack.html |
| 121. http://invisible-island.net/autoconf/portability-tar.html |
| 122. http://invisible-island.net/ncurses/tctest.html |
| 123. http://invisible-island.net/ncurses/ncurses.html#download_database |
| 124. http://www.catb.org/~esr/terminfo/ |
| 125. http://web.archive.org/web/*/http://www.cs.utk.edu/~shuford/terminal |
| 126. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h2-overview |
| 127. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h2-release-notes |
| 128. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h3-library |
| 129. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h3-lib-setbuf |
| 130. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h3-lib-versioning |
| 131. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h3-lib-other |
| 132. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h3-programs |
| 133. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h4-utilities |
| 134. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h4-examples |
| 135. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h3-database |
| 136. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h3-documentation |
| 137. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h3-bug-fixes |
| 138. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h3-config-config |
| 139. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h4-config-major |
| 140. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h4-config-options |
| 141. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h3-portability |
| 142. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h4-port-mingw |
| 143. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h4-port-systems |
| 144. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h2-features |
| 145. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h2-who-uses |
| 146. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h2-development |
| 147. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h2-this-stuff |
| 148. file:///usr/build/ncurses/ncurses-6.0-20150808/doc/html/announce.html#h2-other-stuff |