-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
* t
****************************************************************************
- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2013,2014 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 *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: ncurses.3x,v 1.101 2010/12/04 18:38:55 tom Exp @
+ * @Id: ncurses.3x,v 1.119 2014/08/09 20:54:30 tom Exp @
-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="Manpage converted by man2html - see http://invisible-island.net/scripts/readme.html#others_scripts">
<TITLE>ncurses 3x</TITLE>
<link rev=made href="mailto:bug-ncurses@gnu.org">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>ncurses 3x</H1>
-<HR>
+<H1 class="no-header">ncurses 3x</H1>
<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
<STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
</PRE>
-<H2>NAME</H2><PRE>
+<H2><a name="h2-NAME">NAME</a></H2><PRE>
<STRONG>ncurses</STRONG> - CRT screen handling and optimization package
</PRE>
-<H2>SYNOPSIS</H2><PRE>
+<H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
</PRE>
-<H2>DESCRIPTION</H2><PRE>
+<H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
The <STRONG>ncurses</STRONG> library routines give the user a terminal-
independent method of updating character screens with rea-
- sonable optimization. This implementation is ``new
- curses'' (ncurses) and is the approved replacement for
- 4.4BSD classic curses, which has been discontinued. This
- describes <STRONG>ncurses</STRONG> version 5.7 (patch 20110122).
+ sonable optimization. This implementation is "new curses"
+ (ncurses) and is the approved replacement for 4.4BSD clas-
+ sic curses, which has been discontinued. This describes
+ <STRONG>ncurses</STRONG> version 5.9 (patch 20150523).
The <STRONG>ncurses</STRONG> library emulates the curses library of System
V Release 4 UNIX, and XPG4 (X/Open Portability Guide)
clearing and redrawing a screen containing garbage. The
<STRONG>curscr</STRONG> can be used in only a few routines.
- <STRONG>Routine</STRONG> <STRONG>and</STRONG> <STRONG>Argument</STRONG> <STRONG>Names</STRONG>
+
+</PRE>
+<H3><a name="h3-Routine-and-Argument-Names">Routine and Argument Names</a></H3><PRE>
Many <STRONG>curses</STRONG> routines have two or more versions. The rou-
tines prefixed with <STRONG>w</STRONG> require a window argument. The rou-
tines prefixed with <STRONG>p</STRONG> require a pad argument. Those with-
ants: a "_w" is inserted into the name. For
example, <STRONG>waddch</STRONG> becomes <STRONG>wadd_wch</STRONG>.
- <STRONG>Routine</STRONG> <STRONG>Name</STRONG> <STRONG>Index</STRONG>
+
+</PRE>
+<H3><a name="h3-Routine-Name-Index">Routine Name Index</a></H3><PRE>
The following table lists each <STRONG>curses</STRONG> routine and the name
of the manual page on which it is described. Routines
flagged with `*' are ncurses-specific, not described by
use_env <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
use_extended_names <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>*
use_legacy_coding <STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG>*
+ use_tioctl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
vid_attr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
vid_puts <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
vidattr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
wgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
wgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
wgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
- wgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
+ wgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
whline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
whline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
win_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
</PRE>
-<H2>RETURN VALUE</H2><PRE>
+<H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
Routines that return an integer return <STRONG>ERR</STRONG> upon failure
and an integer value other than <STRONG>ERR</STRONG> upon successful com-
pletion, unless otherwise noted in the routine descrip-
tions.
- All macros return the value of the <STRONG>w</STRONG> version, except
+ As a general rule, routines check for null pointers passed
+ as parameters, and handle this as an error.
+
+ All macros return the value of the <STRONG>w</STRONG> version, except
<STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>, and <STRONG>getmaxyx</STRONG>. The
- return values of <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>,
+ return values of <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>,
and <STRONG>getmaxyx</STRONG> are undefined (i.e., these should not be used
as the right-hand side of assignment statements).
</PRE>
-<H2>ENVIRONMENT</H2><PRE>
+<H2><a name="h2-ENVIRONMENT">ENVIRONMENT</a></H2><PRE>
The following environment symbols are useful for customiz-
ing the runtime behavior of the <STRONG>ncurses</STRONG> library. The most
important ones have been already discussed in detail.
- BAUDRATE
- The debugging library checks this environment symbol
- when the application has redirected output to a file.
- The symbol's numeric value is used for the baudrate.
- If no value is found, <STRONG>ncurses</STRONG> uses 9600. This allows
- testers to construct repeatable test-cases that take
- into account costs that depend on baudrate.
-
CC When set, change occurrences of the command_character
(i.e., the <STRONG>cmdch</STRONG> capability) of the loaded terminfo
- entries to the value of this symbol. Very few ter-
+ entries to the value of this variable. Very few ter-
minfo entries provide this feature.
Because this name is also used in development envi-
ignores it if it does not happen to be a single char-
acter.
+ BAUDRATE
+ The debugging library checks this environment vari-
+ able when the application has redirected output to a
+ file. The variable's numeric value is used for the
+ baudrate. If no value is found, <STRONG>ncurses</STRONG> uses 9600.
+ This allows testers to construct repeatable test-
+ cases that take into account costs that depend on
+ baudrate.
+
COLUMNS
Specify the width of the screen in characters.
Applications running in a windowing environment usu-
as emulations.
Use the <STRONG>use_env</STRONG> function to disable all use of exter-
- nal environment (including system calls) to determine
- the screen size.
+ nal environment (but not including system calls) to
+ determine the screen size. Use the <STRONG>use_tioctl</STRONG> func-
+ tion to update <STRONG>COLUMNS</STRONG> or <STRONG>LINES</STRONG> to match the screen
+ size obtained from system calls or the terminal data-
+ base.
ESCDELAY
- Specifies the total time, in milliseconds, for which
- ncurses will await a character sequence, e.g., a
- function key. The default value, 1000 milliseconds,
+ Specifies the total time, in milliseconds, for which
+ ncurses will await a character sequence, e.g., a
+ function key. The default value, 1000 milliseconds,
is enough for most uses. However, it is made a vari-
able to accommodate unusual applications.
The most common instance where you may wish to change
- this value is to work with slow hosts, e.g., running
- on a network. If the host cannot read characters
- rapidly enough, it will have the same effect as if
- the terminal did not send characters rapidly enough.
+ this value is to work with slow hosts, e.g., running
+ on a network. If the host cannot read characters
+ rapidly enough, it will have the same effect as if
+ the terminal did not send characters rapidly enough.
The library will still see a timeout.
- Note that xterm mouse events are built up from char-
- acter sequences received from the xterm. If your
+ Note that xterm mouse events are built up from char-
+ acter sequences received from the xterm. If your
application makes heavy use of multiple-clicking, you
- may wish to lengthen this default value because the
- timeout applies to the composed multi-click event as
+ may wish to lengthen this default value because the
+ timeout applies to the composed multi-click event as
well as the individual clicks.
- In addition to the environment variable, this imple-
- mentation provides a global variable with the same
+ In addition to the environment variable, this imple-
+ mentation provides a global variable with the same
name. Portable applications should not rely upon the
- presence of ESCDELAY in either form, but setting the
- environment variable rather than the global variable
- does not create problems when compiling an applica-
+ presence of ESCDELAY in either form, but setting the
+ environment variable rather than the global variable
+ does not create problems when compiling an applica-
tion.
- HOME Tells <STRONG>ncurses</STRONG> where your home directory is. That is
+ HOME Tells <STRONG>ncurses</STRONG> where your home directory is. That is
where it may read and write auxiliary terminal
descriptions:
$HOME/.terminfo
LINES
- Like COLUMNS, specify the height of the screen in
+ Like COLUMNS, specify the height of the screen in
characters. See COLUMNS for a detailed description.
MOUSE_BUTTONS_123
This applies only to the OS/2 EMX port. It specifies
- the order of buttons on the mouse. OS/2 numbers a
+ the order of buttons on the mouse. OS/2 numbers a
3-button mouse inconsistently from other platforms:
1 = left
2 = right
3 = middle.
- This symbol lets you customize the mouse. The symbol
- must be three numeric digits 1-3 in any order, e.g.,
- 123 or 321. If it is not specified, <STRONG>ncurses</STRONG> uses
- 132.
+ This variable lets you customize the mouse. The
+ variable must be three numeric digits 1-3 in any
+ order, e.g., 123 or 321. If it is not specified,
+ <STRONG>ncurses</STRONG> uses 132.
NCURSES_ASSUMED_COLORS
- Override the compiled-in assumption that the termi-
- nal's default colors are white-on-black (see
- <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>). You may set the foreground and
- background color values with this environment vari-
- able by proving a 2-element list: foreground,back-
- ground. For example, to tell ncurses to not assume
- anything about the colors, set this to "-1,-1". To
- make it green-on-black, set it to "2,0". Any posi-
+ Override the compiled-in assumption that the termi-
+ nal's default colors are white-on-black (see
+ <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>). You may set the foreground and
+ background color values with this environment vari-
+ able by proving a 2-element list: foreground,back-
+ ground. For example, to tell ncurses to not assume
+ anything about the colors, set this to "-1,-1". To
+ make it green-on-black, set it to "2,0". Any posi-
tive value from zero to the terminfo <STRONG>max_colors</STRONG> value
is allowed.
+ NCURSES_CONSOLE2
+ This applies only to the MinGW port of ncurses.
+
+ The <STRONG>Console2</STRONG> program's handling of the Microsoft Con-
+ sole API call <STRONG>CreateConsoleScreenBuffer</STRONG> is defective.
+ Applications which use this will hang. However, it
+ is possible to simulate the action of this call by
+ mapping coordinates, explicitly saving and restoring
+ the original screen contents. Setting the environ-
+ ment variable <STRONG>NCGDB</STRONG> has the same effect.
+
NCURSES_GPM_TERMS
- This applies only to ncurses configured to use the
+ This applies only to ncurses configured to use the
GPM interface.
If present, the environment variable is a list of one
- or more terminal names against which the TERM envi-
- ronment variable is matched. Setting it to an empty
- value disables the GPM interface; using the built-in
+ or more terminal names against which the TERM envi-
+ ronment variable is matched. Setting it to an empty
+ value disables the GPM interface; using the built-in
support for xterm, etc.
- If the environment variable is absent, ncurses will
+ If the environment variable is absent, ncurses will
attempt to open GPM if TERM contains "linux".
NCURSES_NO_HARD_TABS
- <STRONG>Ncurses</STRONG> may use tabs as part of the cursor movement
- optimization. In some cases, your terminal driver
- may not handle these properly. Set this environment
+ <STRONG>Ncurses</STRONG> may use tabs as part of the cursor movement
+ optimization. In some cases, your terminal driver
+ may not handle these properly. Set this environment
variable to disable the feature. You can also adjust
your <STRONG>stty</STRONG> settings to avoid the problem.
- NCURSES_NO_MAGIC_COOKIES
+ NCURSES_NO_MAGIC_COOKIE
Some terminals use a magic-cookie feature which
- requires special handling to make highlighting and
- other video attributes display properly. You can
- suppress the highlighting entirely for these termi-
+ requires special handling to make highlighting and
+ other video attributes display properly. You can
+ suppress the highlighting entirely for these termi-
nals by setting this environment variable.
NCURSES_NO_PADDING
- Most of the terminal descriptions in the terminfo
- database are written for real "hardware" terminals.
- Many people use terminal emulators which run in a
- windowing environment and use curses-based applica-
- tions. Terminal emulators can duplicate all of the
+ Most of the terminal descriptions in the terminfo
+ database are written for real "hardware" terminals.
+ Many people use terminal emulators which run in a
+ windowing environment and use curses-based applica-
+ tions. Terminal emulators can duplicate all of the
important aspects of a hardware terminal, but they do
- not have the same limitations. The chief limitation
- of a hardware terminal from the standpoint of your
+ not have the same limitations. The chief limitation
+ of a hardware terminal from the standpoint of your
application is the management of dataflow, i.e., tim-
ing. Unless a hardware terminal is interfaced into a
- terminal concentrator (which does flow control), it
- (or your application) must manage dataflow, prevent-
- ing overruns. The cheapest solution (no hardware
+ terminal concentrator (which does flow control), it
+ (or your application) must manage dataflow, prevent-
+ ing overruns. The cheapest solution (no hardware
cost) is for your program to do this by pausing after
- operations that the terminal does slowly, such as
+ operations that the terminal does slowly, such as
clearing the display.
- As a result, many terminal descriptions (including
- the vt100) have delay times embedded. You may wish
- to use these descriptions, but not want to pay the
+ As a result, many terminal descriptions (including
+ the vt100) have delay times embedded. You may wish
+ to use these descriptions, but not want to pay the
performance penalty.
- Set the NCURSES_NO_PADDING symbol to disable all but
- mandatory padding. Mandatory padding is used as a
- part of special control sequences such as <EM>flash</EM>.
+ Set the NCURSES_NO_PADDING environment variable to
+ disable all but mandatory padding. Mandatory padding
+ is used as a part of special control sequences such
+ as <EM>flash</EM>.
NCURSES_NO_SETBUF
- Normally <STRONG>ncurses</STRONG> enables buffered output during ter-
- minal initialization. This is done (as in SVr4
- curses) for performance reasons. For testing pur-
- poses, both of <STRONG>ncurses</STRONG> and certain applications, this
- feature is made optional. Setting the
- NCURSES_NO_SETBUF variable disables output buffering,
- leaving the output in the original (usually line
- buffered) mode.
+ This setting is obsolete. Before changes
+
+ <STRONG>o</STRONG> started with 5.9 patch 20120825 and
+
+ <STRONG>o</STRONG> continued though 5.9 patch 20130126
+
+ <STRONG>ncurses</STRONG> enabled buffered output during terminal ini-
+ tialization. This was done (as in SVr4 curses) for
+ performance reasons. For testing purposes, both of
+ <STRONG>ncurses</STRONG> and certain applications, this feature was
+ made optional. Setting the NCURSES_NO_SETBUF vari-
+ able disabled output buffering, leaving the output in
+ the original (usually line buffered) mode.
+
+ In the current implementation, ncurses performs its
+ own buffering and does not require this workaround.
+ It does not modify the buffering of the standard out-
+ put.
+
+ The reason for the change was to make the behavior
+ for interrupts and other signals more robust. One
+ drawback is that certain nonconventional programs
+ would mix ordinary stdio calls with ncurses calls and
+ (usually) work. This is no longer possible since
+ ncurses is not using the buffered standard output but
+ its own output (to the same file descriptor). As a
+ special case, the low-level calls such as <STRONG>putp</STRONG> still
+ use the standard output. But high-level curses calls
+ do not.
NCURSES_NO_UTF8_ACS
During initialization, the <STRONG>ncurses</STRONG> library checks for
- special cases where VT100 line-drawing (and the cor-
- responding alternate character set capabilities)
- described in the terminfo are known to be missing.
- Specifically, when running in a UTF-8 locale, the
- Linux console emulator and the GNU screen program
- ignore these. Ncurses checks the TERM environment
- variable for these. For other special cases, you
- should set this environment variable. Doing this
- tells ncurses to use Unicode values which correspond
+ special cases where VT100 line-drawing (and the cor-
+ responding alternate character set capabilities)
+ described in the terminfo are known to be missing.
+ Specifically, when running in a UTF-8 locale, the
+ Linux console emulator and the GNU screen program
+ ignore these. Ncurses checks the TERM environment
+ variable for these. For other special cases, you
+ should set this environment variable. Doing this
+ tells ncurses to use Unicode values which correspond
to the VT100 line-drawing glyphs. That works for the
special cases cited, and is likely to work for termi-
nal emulators.
- When setting this variable, you should set it to a
- nonzero value. Setting it to zero (or to a nonnum-
- ber) disables the special check for "linux" and
+ When setting this variable, you should set it to a
+ nonzero value. Setting it to zero (or to a nonnum-
+ ber) disables the special check for "linux" and
"screen".
+ As an alternative to the environment variable,
+ ncurses checks for an extended terminfo capability
+ <STRONG>U8</STRONG>. This is a numeric capability which can be com-
+ piled using <STRONG>tic</STRONG> <STRONG>-x</STRONG>. For example
+
+ # linux console, if patched to provide working
+ # VT100 shift-in/shift-out, with corresponding font.
+ linux-vt100|linux console with VT100 line-graphics,
+ U8#0, use=linux,
+
+ # uxterm with vt100Graphics resource set to false
+ xterm-utf8|xterm relying on UTF-8 line-graphics,
+ U8#1, use=xterm,
+
+ The name "U8" is chosen to be two characters, to per-
+ mit it to be used by applications that use ncurses'
+ termcap interface.
+
NCURSES_TRACE
During initialization, the <STRONG>ncurses</STRONG> debugging library
- checks the NCURSES_TRACE symbol. If it is defined,
- to a numeric value, <STRONG>ncurses</STRONG> calls the <STRONG>trace</STRONG> function,
- using that value as the argument.
+ checks the NCURSES_TRACE environment variable. If it
+ is defined, to a numeric value, <STRONG>ncurses</STRONG> calls the
+ <STRONG>trace</STRONG> function, using that value as the argument.
The argument values, which are defined in <STRONG>curses.h</STRONG>,
provide several types of information. When running
TERM Denotes your terminal type. Each terminal type is
distinct, though many are similar.
+ <STRONG>TERM</STRONG> is commonly set by terminal emulators to help
+ applications find a workable terminal description.
+ Some of those choose a popular approximation, e.g.,
+ "ansi", "vt100", "xterm" rather than an exact fit.
+ Not infrequently, your application will have problems
+ with that approach, e.g., incorrect function-key def-
+ initions.
+
+ If you set <STRONG>TERM</STRONG> in your environment, it has no effect
+ on the operation of the terminal emulator. It only
+ affects the way applications work within the termi-
+ nal. Likewise, as a general rule (<STRONG>xterm</STRONG> being a rare
+ exception), terminal emulators which allow you to
+ specify <STRONG>TERM</STRONG> as a parameter or configuration value do
+ not change their behavior to match that setting.
+
TERMCAP
If the <STRONG>ncurses</STRONG> library has been configured with <EM>term-</EM>
<EM>cap</EM> support, <STRONG>ncurses</STRONG> will check for a terminal's
description in termcap form if it is not available in
the terminfo database.
- The TERMCAP symbol contains either a terminal
- description (with newlines stripped out), or a file
- name telling where the information denoted by the
- TERM symbol exists. In either case, setting it
- directs <STRONG>ncurses</STRONG> to ignore the usual place for this
- information, e.g., /etc/termcap.
+ The TERMCAP environment variable contains either a
+ terminal description (with newlines stripped out), or
+ a file name telling where the information denoted by
+ the TERM environment variable exists. In either
+ case, setting it directs <STRONG>ncurses</STRONG> to ignore the usual
+ place for this information, e.g., /etc/termcap.
TERMINFO
Overrides the directory in which <STRONG>ncurses</STRONG> searches for
<STRONG>o</STRONG> the last directory to which <STRONG>ncurses</STRONG> wrote, if
any, is searched first
- <STRONG>o</STRONG> the directory specified by the TERMINFO symbol
+ <STRONG>o</STRONG> the directory specified by the TERMINFO environ-
+ ment variable
<STRONG>o</STRONG> $HOME/.terminfo
- <STRONG>o</STRONG> directories listed in the TERMINFO_DIRS symbol
+ <STRONG>o</STRONG> directories listed in the TERMINFO_DIRS environ-
+ ment variable
<STRONG>o</STRONG> one or more directories whose names are config-
- ured and compiled into the ncurses library, e.g.,
- /usr/share/terminfo
+ ured and compiled into the ncurses library, i.e.,
+
+ <STRONG>o</STRONG> /usr/local/ncurses/share/ter-
+ minfo:/usr/share/terminfo (corresponding to
+ the TERMINFO_DIRS variable)
+
+ <STRONG>o</STRONG> /usr/share/terminfo (corresponding to the
+ TERMINFO variable)
TERMINFO_DIRS
Specifies a list of directories to search for termi-
nal descriptions. The list is separated by colons
- (i.e., ":") on Unix, semicolons on OS/2 EMX. All of
- the terminal descriptions are in terminfo form, which
- makes a subdirectory named for the first letter of
- the terminal names therein.
+ (i.e., ":") on Unix, semicolons on OS/2 EMX.
+
+ All of the terminal descriptions are in terminfo
+ form. Normally these are stored in a directory tree,
+ using subdirectories named by the first letter of the
+ terminal names therein.
+
+ If <STRONG>ncurses</STRONG> is built with a hashed database, then each
+ entry in this list can also be the path of the corre-
+ sponding database file.
+
+ If <STRONG>ncurses</STRONG> is built with a support for reading term-
+ cap files directly, then an entry in this list may be
+ the path of a termcap file.
TERMPATH
If TERMCAP does not hold a file name then <STRONG>ncurses</STRONG>
- checks the TERMPATH symbol. This is a list of file-
- names separated by spaces or colons (i.e., ":") on
- Unix, semicolons on OS/2 EMX. If the TERMPATH symbol
- is not set, <STRONG>ncurses</STRONG> looks in the files /etc/termcap,
+ checks the TERMPATH environment variable. This is a
+ list of filenames separated by spaces or colons
+ (i.e., ":") on Unix, semicolons on OS/2 EMX.
+
+ If the TERMPATH environment variable is not set,
+ <STRONG>ncurses</STRONG> looks in the files /etc/termcap,
/usr/share/misc/termcap and $HOME/.termcap, in that
order.
The library may be configured to disregard the following
variables when the current user is the superuser (root),
- or if the application uses setuid or setgid permissions:
- $TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as $HOME.
+ or if the application uses setuid or setgid permissions:
+
+ $TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as
+ $HOME.
</PRE>
-<H2>ALTERNATE CONFIGURATIONS</H2><PRE>
+<H2><a name="h2-ALTERNATE-CONFIGURATIONS">ALTERNATE CONFIGURATIONS</a></H2><PRE>
Several different configurations are possible, depending
on the configure script options used when building
<STRONG>ncurses</STRONG>. There are a few main options whose effects are
applications to be built using either library from
the same set of headers.
+ --with-pthread
+ The configure script renames the library. All of the
+ library names have a "t" appended to them (before any
+ "w" added by <STRONG>--enable-widec</STRONG>).
+
+ The global variables such as <STRONG>LINES</STRONG> are replaced by
+ macros to allow read-only access. At the same time,
+ setter-functions are provided to set these values.
+ Some applications (very few) may require changes to
+ work with this convention.
+
--with-shared
--with-normal
</PRE>
-<H2>FILES</H2><PRE>
+<H2><a name="h2-FILES">FILES</a></H2><PRE>
/usr/share/tabset
directory containing initialization files for the
terminal capability database /usr/share/terminfo ter-
</PRE>
-<H2>SEE ALSO</H2><PRE>
+<H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> and related pages whose names begin "curs_"
for detailed routine descriptions.
<STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
</PRE>
-<H2>EXTENSIONS</H2><PRE>
+<H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
The <STRONG>ncurses</STRONG> library can be compiled with an option
(<STRONG>-DUSE_GETCAP</STRONG>) that falls back to the old-style /etc/term-
cap file if the terminal setup code cannot find a terminfo
</PRE>
-<H2>PORTABILITY</H2><PRE>
+<H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
The <STRONG>ncurses</STRONG> library is intended to be BASE-level confor-
mant with XSI Curses. The EXTENDED XSI Curses functional-
ity (including color support) is supported.
described in <STRONG>PORTABILITY</STRONG> sections of the library man
pages.
+ Unlike other implementations, this one checks parameters
+ such as pointers to WINDOW structures to ensure they are
+ not null. The main reason for providing this behavior is
+ to guard against programmer error. The standard interface
+ does not provide a way for the library to tell an applica-
+ tion which of several possible errors were detected.
+ Relying on this (or some other) extension will adversely
+ affect the portability of curses applications.
+
This implementation also contains several extensions:
- <STRONG>o</STRONG> The routine <STRONG>has_key</STRONG> is not part of XPG4, nor is it
- present in SVr4. See the <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> manual page
+ <STRONG>o</STRONG> The routine <STRONG>has_key</STRONG> is not part of XPG4, nor is it
+ present in SVr4. See the <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> manual page
for details.
- <STRONG>o</STRONG> The routine <STRONG>slk_attr</STRONG> is not part of XPG4, nor is it
+ <STRONG>o</STRONG> The routine <STRONG>slk_attr</STRONG> is not part of XPG4, nor is it
present in SVr4. See the <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> manual page for
details.
<STRONG>o</STRONG> The routines <STRONG>getmouse</STRONG>, <STRONG>mousemask</STRONG>, <STRONG>ungetmouse</STRONG>, <STRONG>mousein-</STRONG>
<STRONG>terval</STRONG>, and <STRONG>wenclose</STRONG> relating to mouse interfacing are
- not part of XPG4, nor are they present in SVr4. See
+ not part of XPG4, nor are they present in SVr4. See
the <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> manual page for details.
- <STRONG>o</STRONG> The routine <STRONG>mcprint</STRONG> was not present in any previous
- curses implementation. See the <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG> manual
+ <STRONG>o</STRONG> The routine <STRONG>mcprint</STRONG> was not present in any previous
+ curses implementation. See the <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG> manual
page for details.
- <STRONG>o</STRONG> The routine <STRONG>wresize</STRONG> is not part of XPG4, nor is it
- present in SVr4. See the <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG> manual page for
+ <STRONG>o</STRONG> The routine <STRONG>wresize</STRONG> is not part of XPG4, nor is it
+ present in SVr4. See the <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG> manual page for
details.
- <STRONG>o</STRONG> The WINDOW structure's internal details can be hidden
- from application programs. See <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG> for
+ <STRONG>o</STRONG> The WINDOW structure's internal details can be hidden
+ from application programs. See <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG> for
the discussion of <STRONG>is_scrollok</STRONG>, etc.
<STRONG>o</STRONG> This implementation can be configured to provide rudi-
- mentary support for multi-threaded applications. See
+ mentary support for multi-threaded applications. See
<STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG> for details.
- <STRONG>o</STRONG> This implementation can also be configured to provide
+ <STRONG>o</STRONG> This implementation can also be configured to provide
a set of functions which improve the ability to manage
multiple screens. See <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG> for details.
- In historic curses versions, delays embedded in the capa-
+ In historic curses versions, delays embedded in the capa-
bilities <STRONG>cr</STRONG>, <STRONG>ind</STRONG>, <STRONG>cub1</STRONG>, <STRONG>ff</STRONG> and <STRONG>tab</STRONG> activated corresponding
- delay bits in the UNIX tty driver. In this implementa-
- tion, all padding is done by sending NUL bytes. This
- method is slightly more expensive, but narrows the inter-
- face to the UNIX kernel significantly and increases the
+ delay bits in the UNIX tty driver. In this implementa-
+ tion, all padding is done by sending NUL bytes. This
+ method is slightly more expensive, but narrows the inter-
+ face to the UNIX kernel significantly and increases the
package's portability correspondingly.
</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG><curses.h></STRONG> automatically includes the
+<H2><a name="h2-NOTES">NOTES</a></H2><PRE>
+ The header file <STRONG><curses.h></STRONG> automatically includes the
header files <STRONG><stdio.h></STRONG> and <STRONG><unctrl.h></STRONG>.
- If standard output from a <STRONG>ncurses</STRONG> program is re-directed
- to something which is not a tty, screen updates will be
+ If standard output from a <STRONG>ncurses</STRONG> program is re-directed
+ to something which is not a tty, screen updates will be
directed to standard error. This was an undocumented fea-
ture of AT&T System V Release 3 curses.
</PRE>
-<H2>AUTHORS</H2><PRE>
- Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
+<H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
+ Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
Based on pcurses by Pavel Curtis.
<STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
</PRE>
-<HR>
-<ADDRESS>
-Man(1) output converted with
-<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
-</ADDRESS>
+<div class="nav">
+<ul>
+<li><a href="#h2-NAME">NAME</a></li>
+<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
+<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
+<ul>
+<li><a href="#h3-Routine-and-Argument-Names">Routine and Argument Names</a></li>
+<li><a href="#h3-Routine-Name-Index">Routine Name Index</a></li>
+</ul>
+</li>
+<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
+<li><a href="#h2-ENVIRONMENT">ENVIRONMENT</a></li>
+<li><a href="#h2-ALTERNATE-CONFIGURATIONS">ALTERNATE CONFIGURATIONS</a></li>
+<li><a href="#h2-FILES">FILES</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
+<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
+<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-NOTES">NOTES</a></li>
+<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+</ul>
+</div>
</BODY>
</HTML>