- 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-
- minfo entries provide this feature.
-
- COLUMNS
- Specify the width of the screen in characters.
- Applications running in a windowing environment usu-
- ally are able to obtain the width of the window in
- which they are executing. If neither the $COLUMNS
- value nor the terminal's screen size is available,
- <STRONG>ncurses</STRONG> uses the size which may be specified in the
- terminfo database (i.e., the <STRONG>cols</STRONG> capability).
-
- It is important that your application use a correct
- size for the screen. However, this is not always
- possible because your application may be running on a
- host which does not honor NAWS (Negotiations About
- Window Size), or because you are temporarily running
- as another user.
-
- Either COLUMNS or LINES symbols may be specified
- independently. This is mainly useful to circumvent
- legacy misfeatures of terminal descriptions, e.g.,
- xterm which commonly specifies a 65 line screen. For
- best results, <STRONG>lines</STRONG> and <STRONG>cols</STRONG> should not be specified
- in a terminal description for terminals which are run
- as emulations.
-
- Use the <STRONG>use_env</STRONG> function to disable this feature.
-
- 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,
- 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.
- 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
- 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
- well as the individual clicks.
-
- HOME Tells <STRONG>ncurses</STRONG> where your home directory is. That is
- where it may read and write auxiliary terminal
- descriptions:
-
- $HOME/.termcap
- $HOME/.terminfo
-
- LINES
- 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
- 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.
-
- NCURSES_ASSUMED_COLORS
- Override the compiled-in assumption that the termi-
- nal's default colors are white-on-black (see
- <STRONG><A HREF="assume_default_colors.3x.html">assume_default_colors(3x)</A></STRONG>). You may set the fore-
- ground and background color values with this environ-
- ment variable by proving a 2-element list: fore-
- ground,background. 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 positive value from zero to the terminfo <STRONG>max_col-</STRONG>
- <STRONG>ors</STRONG> value is allowed.
-
- 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
- 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
- application is the management of dataflow, i.e.,
- timing. Unless a hardware terminal is interfaced
- into a terminal concentrator (which does flow con-
- trol), it (or your application) must manage dataflow,
- preventing overruns. The cheapest solution (no hard-
- ware cost) is for your program to do this by pausing
- after 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
- 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>.
-
- 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.
-
- 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.
-
- The argument values, which are defined in <STRONG>curses.h</STRONG>,
- provide several types of information. When running
- with traces enabled, your application will write the
- file <STRONG>trace</STRONG> to the current directory.
-
- TERM Denotes your terminal type. Each terminal type is
- distinct, though many are similar.
-
- 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.
-
- TERMINFO
- Overrides the directory in which <STRONG>ncurses</STRONG> searches for
- your terminal description. This is the simplest, but
- not the only way to change the list of directories.
- The complete list of directories in order follows:
-
- - the last directory to which <STRONG>ncurses</STRONG> wrote, if any,
- is searched first
-
- - the directory specified by the TERMINFO symbol
-
- - $HOME/.terminfo
-
- - directories listed in the TERMINFO_DIRS symbol
-
- - one or more directories whose names are configured
- and compiled into the ncurses library, e.g.,
- /usr/share/terminfo
-
- 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.
-
- 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,
- /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:
+ <STRONG>CC</STRONG>
+ 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 variable. Very few terminfo
+ entries provide this feature.
+
+ Because this name is also used in development environments
+ to represent the C compiler's name, <STRONG>ncurses</STRONG> ignores it if
+ it does not happen to be a single character.
+
+
+</PRE>
+<H3><a name="h3-BAUDRATE">BAUDRATE</a></H3><PRE>
+ The debugging library checks this environment variable
+ 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.
+
+
+</PRE>
+<H3><a name="h3-COLUMNS">COLUMNS</a></H3><PRE>
+ Specify the width of the screen in characters. Applica-
+ tions running in a windowing environment usually are able
+ to obtain the width of the window in which they are exe-
+ cuting. If neither the <STRONG>COLUMNS</STRONG> value nor the terminal's
+ screen size is available, <STRONG>ncurses</STRONG> uses the size which may
+ be specified in the terminfo database (i.e., the <STRONG>cols</STRONG>
+ capability).
+
+ It is important that your application use a correct size
+ for the screen. This is not always possible because your
+ application may be running on a host which does not honor
+ NAWS (Negotiations About Window Size), or because you are
+ temporarily running as another user. However, setting
+ <STRONG>COLUMNS</STRONG> and/or <STRONG>LINES</STRONG> overrides the library's use of the
+ screen size obtained from the operating system.
+
+ Either <STRONG>COLUMNS</STRONG> or <STRONG>LINES</STRONG> symbols may be specified indepen-
+ dently. This is mainly useful to circumvent legacy mis-
+ features of terminal descriptions, e.g., xterm which com-
+ monly specifies a 65 line screen. For best results, <STRONG>lines</STRONG>
+ and <STRONG>cols</STRONG> should not be specified in a terminal description
+ for terminals which are run as emulations.
+
+ Use the <STRONG>use_env</STRONG> function to disable all use of external
+ environment (but not including system calls) to determine
+ the screen size. Use the <STRONG>use_tioctl</STRONG> function to update
+ <STRONG>COLUMNS</STRONG> or <STRONG>LINES</STRONG> to match the screen size obtained from
+ system calls or the terminal database.
+
+
+</PRE>
+<H3><a name="h3-ESCDELAY">ESCDELAY</a></H3><PRE>
+ 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 variable 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 net-
+ work. 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 character
+ 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 well as the individual
+ clicks.
+
+ In addition to the environment variable, this implementa-
+ tion provides a global variable with the same name. Por-
+ table applications should not rely upon the presence of
+ ESCDELAY in either form, but setting the environment vari-
+ able rather than the global variable does not create prob-
+ lems when compiling an application.
+
+
+</PRE>
+<H3><a name="h3-HOME">HOME</a></H3><PRE>
+ Tells <STRONG>ncurses</STRONG> where your home directory is. That is where
+ it may read and write auxiliary terminal descriptions:
+
+ $HOME/.termcap
+ $HOME/.terminfo
+
+
+</PRE>
+<H3><a name="h3-LINES">LINES</a></H3><PRE>
+ Like COLUMNS, specify the height of the screen in charac-
+ ters. See COLUMNS for a detailed description.
+
+
+</PRE>
+<H3><a name="h3-MOUSE_BUTTONS_123">MOUSE_BUTTONS_123</a></H3><PRE>
+ This applies only to the OS/2 EMX port. It specifies 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 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.
+
+
+</PRE>
+<H3><a name="h3-NCURSES_ASSUMED_COLORS">NCURSES_ASSUMED_COLORS</a></H3><PRE>
+ Override the compiled-in assumption that the terminal's
+ default colors are white-on-black (see <STRONG>default_col-</STRONG>
+ <STRONG><A HREF="default_colors.3x.html">ors(3x)</A></STRONG>). You may set the foreground and background color
+ values with this environment variable by proving a 2-ele-
+ ment list: foreground,background. 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 positive value from zero to the terminfo <STRONG>max_colors</STRONG>
+ value is allowed.
+
+
+</PRE>
+<H3><a name="h3-NCURSES_CONSOLE2">NCURSES_CONSOLE2</a></H3><PRE>
+ This applies only to the MinGW port of ncurses.
+
+ The <STRONG>Console2</STRONG> program's handling of the Microsoft Console
+ API call <STRONG>CreateConsoleScreenBuffer</STRONG> is defective. Applica-
+ tions which use this will hang. However, it is possible
+ to simulate the action of this call by mapping coordi-
+ nates, explicitly saving and restoring the original screen
+ contents. Setting the environment variable <STRONG>NCGDB</STRONG> has the
+ same effect.
+
+
+</PRE>
+<H3><a name="h3-NCURSES_GPM_TERMS">NCURSES_GPM_TERMS</a></H3><PRE>
+ 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 environment
+ variable is matched. Setting it to an empty value dis-
+ ables the GPM interface; using the built-in support for
+ xterm, etc.
+
+ If the environment variable is absent, ncurses will
+ attempt to open GPM if TERM contains "linux".
+
+
+</PRE>
+<H3><a name="h3-NCURSES_NO_HARD_TABS">NCURSES_NO_HARD_TABS</a></H3><PRE>
+ <STRONG>Ncurses</STRONG> may use tabs as part of the cursor movement opti-
+ mization. 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> set-
+ tings to avoid the problem. NCURSES_NO_MAGIC_COOKIE Some
+ terminals use a magic-cookie feature which requires spe-
+ cial handling to make highlighting and other video
+ attributes display properly. You can suppress the high-
+ lighting entirely for these terminals by setting this
+ environment variable.
+
+
+</PRE>
+<H3><a name="h3-NCURSES_NO_PADDING">NCURSES_NO_PADDING</a></H3><PRE>
+ 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 environ-
+ ment and use curses-based applications. Terminal emula-
+ tors can duplicate all of the important aspects of a hard-
+ ware terminal, but they do 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., timing. Unless a hardware terminal is
+ interfaced into a terminal concentrator (which does flow
+ control), it (or your application) must manage dataflow,
+ preventing 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 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 performance
+ penalty.
+
+ 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>.
+
+
+</PRE>
+<H3><a name="h3-NCURSES_NO_SETBUF">NCURSES_NO_SETBUF</a></H3><PRE>
+ 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 initial-
+ ization. This was done (as in SVr4 curses) for perfor-
+ mance reasons. For testing purposes, both of <STRONG>ncurses</STRONG> and
+ certain applications, this feature was made optional.
+ Setting the NCURSES_NO_SETBUF variable 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 output.
+
+ 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.
+
+
+</PRE>
+<H3><a name="h3-NCURSES_NO_UTF8_ACS">NCURSES_NO_UTF8_ACS</a></H3><PRE>
+ During initialization, the <STRONG>ncurses</STRONG> library checks for spe-
+ cial cases where VT100 line-drawing (and the corresponding
+ alternate character set capabilities) described in the
+ terminfo are known to be missing. Specifically, when run-
+ ning 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 terminal emulators.
+
+ When setting this variable, you should set it to a nonzero
+ value. Setting it to zero (or to a nonnumber) 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 compiled 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 permit it
+ to be used by applications that use ncurses' termcap
+ interface.
+
+
+</PRE>
+<H3><a name="h3-NCURSES_TRACE">NCURSES_TRACE</a></H3><PRE>
+ During initialization, the <STRONG>ncurses</STRONG> debugging library
+ checks the NCURSES_TRACE environment variable. If it is
+ defined, to a numeric value, <STRONG>ncurses</STRONG> calls the <STRONG>trace</STRONG> func-
+ tion, using that value as the argument.
+
+ The argument values, which are defined in <STRONG>curses.h</STRONG>, pro-
+ vide several types of information. When running with
+ traces enabled, your application will write the file <STRONG>trace</STRONG>
+ to the current directory.
+
+ See <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG> for more information.
+
+
+</PRE>
+<H3><a name="h3-TERM">TERM</a></H3><PRE>
+ Denotes your terminal type. Each terminal type is dis-
+ tinct, though many are similar.
+
+ <STRONG>TERM</STRONG> is commonly set by terminal emulators to help appli-
+ cations find a workable terminal description. Some of
+ those choose a popular approximation, e.g., "ansi",
+ "vt100", "xterm" rather than an exact fit. Not infre-
+ quently, your application will have problems with that
+ approach, e.g., incorrect function-key definitions.
+
+ 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 terminal. 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.
+
+
+</PRE>
+<H3><a name="h3-TERMCAP">TERMCAP</a></H3><PRE>
+ If the <STRONG>ncurses</STRONG> library has been configured with <EM>termcap</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 environment variable contains either a termi-
+ nal 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 infor-
+ mation, e.g., /etc/termcap.
+
+
+</PRE>
+<H3><a name="h3-TERMINFO">TERMINFO</a></H3><PRE>
+ Overrides the directory in which <STRONG>ncurses</STRONG> searches for your
+ terminal description. This is the simplest, but not the
+ only way to change the list of directories. The complete
+ list of directories in order follows:
+
+ <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 environment
+ variable
+
+ <STRONG>o</STRONG> $HOME/.terminfo
+
+ <STRONG>o</STRONG> directories listed in the TERMINFO_DIRS environment
+ variable
+
+ <STRONG>o</STRONG> one or more directories whose names are configured
+ 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 TER-
+ MINFO variable)
+
+
+</PRE>
+<H3><a name="h3-TERMINFO_DIRS">TERMINFO_DIRS</a></H3><PRE>
+ Specifies a list of directories to search for terminal
+ 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.
+ Normally these are stored in a directory tree, using sub-
+ directories 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 correspond-
+ ing database file.
+
+ If <STRONG>ncurses</STRONG> is built with a support for reading termcap
+ files directly, then an entry in this list may be the path
+ of a termcap file.
+
+
+</PRE>
+<H3><a name="h3-TERMPATH">TERMPATH</a></H3><PRE>
+ If TERMCAP does not hold a file name then <STRONG>ncurses</STRONG> 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:
+