#!/bin/sh
-# $Id: make-tar.sh,v 1.14 2013/10/26 23:10:24 tom Exp $
+# $Id: make-tar.sh,v 1.15 2015/05/16 17:12:37 tom Exp $
##############################################################################
-# Copyright (c) 2010-2011,2013 Free Software Foundation, Inc. #
+# Copyright (c) 2010-2013,2015 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
# copy of this software and associated documentation files (the "Software"), #
make_changelog() {
test -f $1 && chmod u+w $1
cat >$1 <<EOF
-`echo $PKG_NAME|tr '[A-Z]' '[a-z]'` ($NCURSES_MAJOR.$NCURSES_MINOR-$NCURSES_PATCH) unstable; urgency=low
+`echo $PKG_NAME|tr '[A-Z]' '[a-z]'` ($NCURSES_MAJOR.$NCURSES_MINOR+$NCURSES_PATCH) unstable; urgency=low
* snapshot of ncurses subpackage for $PKG_NAME.
-3.0 (quilt)
+3.0 (native)
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: NEWS,v 1.2417 2015/05/09 18:19:39 tom Exp $
+-- $Id: NEWS,v 1.2421 2015/05/16 20:29:02 tom Exp $
-------------------------------------------------------------------------------
This is a log of changes that ncurses has gone through since Zeyd started
Changes through 1.9.9e did not credit all contributions;
it is not possible to add this information.
+20150516
+ + amend change to ".pc" files to only use the extra loader flags which
+ may have rpath options (report by Sven Joachim, cf: 20150502).
+ + change versioning for dpkg's in test-packages for Ada95 and
+ ncurses-examples for consistency with Debian, to work with package
+ updates.
+ + regenerate html manpages.
+ + clarify handling of carriage return in waddch manual page; it was
+ discussed only in the portability section (prompted by comment on
+ Stack Overflow forum):
+
20150509
+ add test-packages for cross-compiling ncurses-examples using the
MinGW test-packages. These are only the Debian packages; RPM later.
-5:0:9 5.9 20150509
+5:0:9 5.9 20150516
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: dist.mk,v 1.1050 2015/05/04 08:56:59 tom Exp $
+# $Id: dist.mk,v 1.1051 2015/05/13 19:01:14 tom Exp $
# Makefile for creating ncurses distributions.
#
# This only needs to be used directly as a makefile by developers, but
# These define the major/minor/patch versions of ncurses.
NCURSES_MAJOR = 5
NCURSES_MINOR = 9
-NCURSES_PATCH = 20150509
+NCURSES_PATCH = 20150516
# We don't append the patch to the version, since this only applies to releases
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
+++ /dev/null
-<!--
- ****************************************************************************
- * Copyright (c) 2010-2011,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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
- * @Id: MKada_config.in,v 1.8 2014/06/07 19:32:52 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>ADACURSES 1 User Commands</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>ADACURSES 1 User Commands</H1>
-<HR>
-<PRE>
-<STRONG><A HREF="ADACURSES.1.html">ADACURSES(1)</A></STRONG> User Commands <STRONG><A HREF="ADACURSES.1.html">ADACURSES(1)</A></STRONG>
-
-
-
-
-</PRE>
-<H2><a name="h2-NAME">NAME</a></H2><PRE>
- adacurses-config - helper script for AdaCurses libraries
-
-
-</PRE>
-<H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
- <STRONG>adacurses-config</STRONG> [<EM>options</EM>]
-
-
-</PRE>
-<H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- This is a shell script which simplifies configuring an
- application to use the AdaCurses library binding to
- ncurses.
-
-
-</PRE>
-<H2><a name="h2-OPTIONS">OPTIONS</a></H2><PRE>
- <STRONG>--cflags</STRONG>
- echos the gnat (Ada compiler) flags needed to com-
- pile with AdaCurses.
-
- <STRONG>--libs</STRONG> echos the gnat libraries needed to link with
- AdaCurses.
-
- <STRONG>--version</STRONG>
- echos the release+patchdate version of the ncurses
- libraries used to configure and build AdaCurses.
-
- <STRONG>--help</STRONG> prints a list of the <STRONG>adacurses-config</STRONG> script's
- options.
-
- If no options are given, <STRONG>adacurses-config</STRONG> prints the com-
- bination of <STRONG>--cflags</STRONG> and <STRONG>--libs</STRONG> that <STRONG>gnatmake</STRONG> expects (see
- example).
-
-
-</PRE>
-<H2><a name="h2-EXAMPLE">EXAMPLE</a></H2><PRE>
- For example, supposing that you want to compile the "Hello
- World!" program for AdaCurses. Make a file named
- "hello.adb":
- with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-
- procedure Hello is
-
- Visibility : Cursor_Visibility := Invisible;
- done : Boolean := False;
- c : Key_Code;
-
- begin
-
- Init_Screen;
- Set_Echo_Mode (False);
-
- Set_Cursor_Visibility (Visibility);
- Set_Timeout_Mode (Standard_Window, Non_Blocking, 0);
-
- Move_Cursor (Line => Lines / 2, Column => (Columns - 12) / 2);
- Add (Str => "Hello World!");
-
- while not done loop
-
- c := Get_Keystroke (Standard_Window);
- case c is
- when Character'Pos ('q') => done := True;
- when others => null;
- end case;
-
- Nap_Milli_Seconds (50);
-
- end loop;
-
- End_Windows;
-
- end Hello;
-
- Then, using
- gnatmake `adacurses-config --cflags` hello -largs
- `adacurses-config --libs`
-
- or (simpler):
- gnatmake hello `adacurses-config`
-
- you will compile and link the program.
-
-
-</PRE>
-<H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
-
- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20150215).
-
-
-
- <STRONG><A HREF="ADACURSES.1.html">ADACURSES(1)</A></STRONG>
-</PRE>
-<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></li>
-<li><a href="#h2-OPTIONS">OPTIONS</a></li>
-<li><a href="#h2-EXAMPLE">EXAMPLE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-</ul>
-</div>
-</BODY>
-</HTML>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>captoinfo 1m</H1>
-<HR>
+<H1 class="no-header">captoinfo 1m</H1>
<PRE>
<STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG> <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>
<H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20150215).
+ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20150516).
</PRE>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>clear 1</H1>
-<HR>
+<H1 class="no-header">clear 1</H1>
<PRE>
<STRONG><A HREF="clear.1.html">clear(1)</A></STRONG> <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>
<H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20150215).
+ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20150516).
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_add_wch 3x</H1>
-<HR>
+<H1 class="no-header">curs_add_wch 3x</H1>
<PRE>
<STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG> <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_add_wchstr 3x</H1>
-<HR>
+<H1 class="no-header">curs_add_wchstr 3x</H1>
<PRE>
<STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG> <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
<!--
* t
****************************************************************************
- * Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2014,2015 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: curs_addch.3x,v 1.33 2014/05/24 19:47:41 tom Exp @
+ * @Id: curs_addch.3x,v 1.35 2015/05/13 19:18:37 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_addch 3x</H1>
-<HR>
+<H1 class="no-header">curs_addch 3x</H1>
<PRE>
<STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG> <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
returned because it is not possible to wrap to a new
line
- If <EM>ch</EM> is a tab, newline, or backspace, the cursor is moved
- appropriately within the window:
+ If <EM>ch</EM> is a tab, newline, carriage return or backspace, the
+ cursor is moved appropriately within the window:
<STRONG>o</STRONG> Backspace moves the cursor one character left; at the
left edge of a window it does nothing.
- <STRONG>o</STRONG> Newline does a <STRONG>clrtoeol</STRONG>, then moves the cursor to the
- window left margin on the next line, scrolling the
+ <STRONG>o</STRONG> Carriage return moves the cursor to the window left
+ margin on the current line.
+
+ <STRONG>o</STRONG> Newline does a <STRONG>clrtoeol</STRONG>, then moves the cursor to the
+ window left margin on the next line, scrolling the
window if on the last line.
<STRONG>o</STRONG> Tabs are considered to be at every eighth column. The
- tab interval may be altered by setting the <STRONG>TABSIZE</STRONG>
+ tab interval may be altered by setting the <STRONG>TABSIZE</STRONG>
variable.
- If <EM>ch</EM> is any control character other than tab, newline, or
- backspace, it is drawn in <STRONG>^</STRONG><EM>X</EM> notation. Calling <STRONG>winch</STRONG>
- after adding a control character does not return the char-
- acter itself, but instead returns the ^-representation of
- the control character.
+ If <EM>ch</EM> is any other control character, it is drawn in <STRONG>^</STRONG><EM>X</EM>
+ notation. Calling <STRONG>winch</STRONG> after adding a control character
+ does not return the character itself, but instead returns
+ the ^-representation of the control character.
Video attributes can be combined with a character argument
passed to <STRONG>addch</STRONG> or related functions by logical-ORing them
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_addchstr 3x</H1>
-<HR>
+<H1 class="no-header">curs_addchstr 3x</H1>
<PRE>
<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG> <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_addstr 3x</H1>
-<HR>
+<H1 class="no-header">curs_addstr 3x</H1>
<PRE>
<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG> <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_addwstr 3x</H1>
-<HR>
+<H1 class="no-header">curs_addwstr 3x</H1>
<PRE>
<STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG> <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_attr 3x</H1>
-<HR>
+<H1 class="no-header">curs_attr 3x</H1>
<PRE>
<STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_beep 3x</H1>
-<HR>
+<H1 class="no-header">curs_beep 3x</H1>
<PRE>
<STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG> <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_bkgd 3x</H1>
-<HR>
+<H1 class="no-header">curs_bkgd 3x</H1>
<PRE>
<STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG> <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_bkgrnd 3x</H1>
-<HR>
+<H1 class="no-header">curs_bkgrnd 3x</H1>
<PRE>
<STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG> <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_border 3x</H1>
-<HR>
+<H1 class="no-header">curs_border 3x</H1>
<PRE>
<STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG> <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_border_set 3x</H1>
-<HR>
+<H1 class="no-header">curs_border_set 3x</H1>
<PRE>
<STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG> <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_clear 3x</H1>
-<HR>
+<H1 class="no-header">curs_clear 3x</H1>
<PRE>
<STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG> <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
<!--
****************************************************************************
- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2010,2015 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: curs_color.3x,v 1.36 2014/11/16 00:44:29 tom Exp @
+ * @Id: curs_color.3x,v 1.37 2015/04/04 19:42:47 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_color 3x</H1>
-<HR>
+<H1 class="no-header">curs_color 3x</H1>
<PRE>
<STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG> <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
called if the programmer wants to use colors, and before
any other color manipulation routine is called. It is
good practice to call this routine right after <STRONG>initscr</STRONG>.
- <STRONG>start_color</STRONG> initializes eight basic colors (black, red,
- green, yellow, blue, magenta, cyan, and white), and two
- global variables, <STRONG>COLORS</STRONG> and <STRONG>COLOR_PAIRS</STRONG> (respectively
- defining the maximum number of colors and color-pairs the
- terminal can support). It also restores the colors on the
- terminal to the values they had when the terminal was just
- turned on.
-
- These limits apply to color values and color pairs. Val-
- ues outside these limits are not legal, and may result in
+ <STRONG>start_color</STRONG> does this:
+
+ <STRONG>o</STRONG> It initializes two global variables, <STRONG>COLORS</STRONG> and <STRONG>COL-</STRONG>
+ <STRONG>OR_PAIRS</STRONG> (respectively defining the maximum number of
+ colors and color-pairs the terminal can support).
+
+ <STRONG>o</STRONG> It initializes the special color pair <STRONG>0</STRONG> to the default
+ foreground and background colors. No other color
+ pairs are initialized.
+
+ <STRONG>o</STRONG> It restores the colors on the terminal to the values
+ they had when the terminal was just turned on.
+
+ <STRONG>o</STRONG> If the terminal supports the <STRONG>initc</STRONG> (<STRONG>initialize_color</STRONG>)
+ capability, <STRONG>start_color</STRONG> initializes its internal table
+ representing the red, green and blue components of the
+ color palette.
+
+ The components depend on whether the terminal uses CGA
+ (aka "ANSI") or HLS (i.e., the <STRONG>hls</STRONG> (<STRONG>hue_lightness_sat-</STRONG>
+ <STRONG>uration</STRONG>) capability is set). The table is initialized
+ first for eight basic colors (black, red, green, yel-
+ low, blue, magenta, cyan, and white), and after that
+ (if the terminal supports more than eight colors) the
+ components are initialized to <STRONG>1000</STRONG>.
+
+ <STRONG>start_color</STRONG> does not attempt to set the terminal's
+ color palette to match its built-in table. An appli-
+ cation may use <STRONG>init_color</STRONG> to alter the internal table
+ along with the terminal's color.
+
+ These limits apply to color values and color pairs. Val-
+ ues outside these limits are not legal, and may result in
a runtime error:
<STRONG>o</STRONG> <STRONG>COLORS</STRONG> corresponds to the terminal database's <STRONG>max_col-</STRONG>
<STRONG>o</STRONG> color values are expected to be in the range <STRONG>0</STRONG> to <STRONG>COL-</STRONG>
<STRONG>ORS-1</STRONG>, inclusive (including <STRONG>0</STRONG> and <STRONG>COLORS-1</STRONG>).
- <STRONG>o</STRONG> a special color value <STRONG>-1</STRONG> is used in certain extended
- functions to denote the <EM>default</EM> <EM>color</EM> (see <STRONG>use_de-</STRONG>
+ <STRONG>o</STRONG> a special color value <STRONG>-1</STRONG> is used in certain extended
+ functions to denote the <EM>default</EM> <EM>color</EM> (see <STRONG>use_de-</STRONG>
<STRONG>fault_colors</STRONG>).
- <STRONG>o</STRONG> <STRONG>COLOR_PAIRS</STRONG> corresponds to the terminal database's
- <STRONG>max_pairs</STRONG> capability, which is typically a signed
+ <STRONG>o</STRONG> <STRONG>COLOR_PAIRS</STRONG> corresponds to the terminal database's
+ <STRONG>max_pairs</STRONG> capability, which is typically a signed
16-bit integer (see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>).
- <STRONG>o</STRONG> legal color pair values are in the range <STRONG>1</STRONG> to <STRONG>COL-</STRONG>
+ <STRONG>o</STRONG> legal color pair values are in the range <STRONG>1</STRONG> to <STRONG>COL-</STRONG>
<STRONG>OR_PAIRS-1</STRONG>, inclusive.
<STRONG>o</STRONG> color pair <STRONG>0</STRONG> is special; it denotes "no color".
- Color pair <STRONG>0</STRONG> is assumed to be white on black, but is
+ Color pair <STRONG>0</STRONG> is assumed to be white on black, but is
actually whatever the terminal implements before color
is initialized. It cannot be modified by the applica-
tion.
- The <STRONG>init_pair</STRONG> routine changes the definition of a color-
- pair. It takes three arguments: the number of the color-
- pair to be changed, the foreground color number, and the
+ The <STRONG>init_pair</STRONG> routine changes the definition of a color-
+ pair. It takes three arguments: the number of the color-
+ pair to be changed, the foreground color number, and the
background color number. For portable applications:
- <STRONG>o</STRONG> The first argument must be a legal color pair value.
- If default colors are used (see <STRONG>use_default_colors</STRONG>)
- the upper limit is adjusted to allow for extra pairs
- which use a default color in foreground and/or back-
+ <STRONG>o</STRONG> The first argument must be a legal color pair value.
+ If default colors are used (see <STRONG>use_default_colors</STRONG>)
+ the upper limit is adjusted to allow for extra pairs
+ which use a default color in foreground and/or back-
ground.
- <STRONG>o</STRONG> The second and third arguments must be legal color
+ <STRONG>o</STRONG> The second and third arguments must be legal color
values.
- If the color-pair was previously initialized, the screen
- is refreshed and all occurrences of that color-pair are
+ If the color-pair was previously initialized, the screen
+ is refreshed and all occurrences of that color-pair are
changed to the new definition.
- As an extension, ncurses allows you to set color pair <STRONG>0</STRONG>
- via the <STRONG>assume_default_colors</STRONG> routine, or to specify the
- use of default colors (color number <STRONG>-1</STRONG>) if you first in-
+ As an extension, ncurses allows you to set color pair <STRONG>0</STRONG>
+ via the <STRONG>assume_default_colors</STRONG> routine, or to specify the
+ use of default colors (color number <STRONG>-1</STRONG>) if you first in-
voke the <STRONG>use_default_colors</STRONG> routine.
- The <STRONG>init_color</STRONG> routine changes the definition of a color.
- It takes four arguments: the number of the color to be
- changed followed by three RGB values (for the amounts of
+ The <STRONG>init_color</STRONG> routine changes the definition of a color.
+ It takes four arguments: the number of the color to be
+ changed followed by three RGB values (for the amounts of
red, green, and blue components). The first argument must
- be a legal color value; default colors are not allowed
- here. (See the section <STRONG>Colors</STRONG> for the default color in-
+ be a legal color value; default colors are not allowed
+ here. (See the section <STRONG>Colors</STRONG> for the default color in-
dex.) Each of the last three arguments must be a value in
- the range <STRONG>0</STRONG> through <STRONG>1000</STRONG>. When <STRONG>init_color</STRONG> is used, all
+ the range <STRONG>0</STRONG> through <STRONG>1000</STRONG>. When <STRONG>init_color</STRONG> is used, all
occurrences of that color on the screen immediately change
to the new definition.
- The <STRONG>has_colors</STRONG> routine requires no arguments. It returns
- <STRONG>TRUE</STRONG> if the terminal can manipulate colors; otherwise, it
+ The <STRONG>has_colors</STRONG> routine requires no arguments. It returns
+ <STRONG>TRUE</STRONG> if the terminal can manipulate colors; otherwise, it
returns <STRONG>FALSE</STRONG>. This routine facilitates writing terminal-
- independent programs. For example, a programmer can use
- it to decide whether to use color or some other video at-
+ independent programs. For example, a programmer can use
+ it to decide whether to use color or some other video at-
tribute.
- The <STRONG>can_change_color</STRONG> routine requires no arguments. It
- returns <STRONG>TRUE</STRONG> if the terminal supports colors and can
- change their definitions; other, it returns <STRONG>FALSE</STRONG>. This
+ The <STRONG>can_change_color</STRONG> routine requires no arguments. It
+ returns <STRONG>TRUE</STRONG> if the terminal supports colors and can
+ change their definitions; other, it returns <STRONG>FALSE</STRONG>. This
routine facilitates writing terminal-independent programs.
- The <STRONG>color_content</STRONG> routine gives programmers a way to find
+ The <STRONG>color_content</STRONG> routine gives programmers a way to find
the intensity of the red, green, and blue (RGB) components
in a color. It requires four arguments: the color number,
- and three addresses of <STRONG>short</STRONG>s for storing the information
- about the amounts of red, green, and blue components in
+ and three addresses of <STRONG>short</STRONG>s for storing the information
+ about the amounts of red, green, and blue components in
the given color. The first argument must be a legal color
- value, i.e., <STRONG>0</STRONG> through <STRONG>COLORS-1</STRONG>, inclusive. The values
- that are stored at the addresses pointed to by the last
- three arguments are in the range <STRONG>0</STRONG> (no component) through
+ value, i.e., <STRONG>0</STRONG> through <STRONG>COLORS-1</STRONG>, inclusive. The values
+ that are stored at the addresses pointed to by the last
+ three arguments are in the range <STRONG>0</STRONG> (no component) through
<STRONG>1000</STRONG> (maximum amount of component), inclusive.
- The <STRONG>pair_content</STRONG> routine allows programmers to find out
- what colors a given color-pair consists of. It requires
- three arguments: the color-pair number, and two addresses
- of <STRONG>short</STRONG>s for storing the foreground and the background
- color numbers. The first argument must be a legal color
- value, i.e., in the range <STRONG>1</STRONG> through <STRONG>COLOR_PAIRS-1</STRONG>, inclu-
+ The <STRONG>pair_content</STRONG> routine allows programmers to find out
+ what colors a given color-pair consists of. It requires
+ three arguments: the color-pair number, and two addresses
+ of <STRONG>short</STRONG>s for storing the foreground and the background
+ color numbers. The first argument must be a legal color
+ value, i.e., in the range <STRONG>1</STRONG> through <STRONG>COLOR_PAIRS-1</STRONG>, inclu-
sive. The values that are stored at the addresses pointed
- to by the second and third arguments are in the range <STRONG>0</STRONG>
+ to by the second and third arguments are in the range <STRONG>0</STRONG>
through <STRONG>COLORS</STRONG>, inclusive.
</PRE>
<H3><a name="h3-Colors">Colors</a></H3><PRE>
In <STRONG><curses.h></STRONG> the following macros are defined. These are
- the default colors. <STRONG>curses</STRONG> also assumes that <STRONG>COLOR_BLACK</STRONG>
+ the default colors. <STRONG>curses</STRONG> also assumes that <STRONG>COLOR_BLACK</STRONG>
is the default background color for all terminals.
<STRONG>COLOR_BLACK</STRONG>
</PRE>
<H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- The routines <STRONG>can_change_color()</STRONG> and <STRONG>has_colors()</STRONG> return
+ The routines <STRONG>can_change_color()</STRONG> and <STRONG>has_colors()</STRONG> return
<STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>.
All other routines return the integer <STRONG>ERR</STRONG> upon failure and
- an <STRONG>OK</STRONG> (SVr4 specifies only "an integer value other than
+ an <STRONG>OK</STRONG> (SVr4 specifies only "an integer value other than
<STRONG>ERR</STRONG>") upon successful completion.
- X/Open defines no error conditions. This implementation
- will return <STRONG>ERR</STRONG> on attempts to use color values outside
+ X/Open defines no error conditions. This implementation
+ will return <STRONG>ERR</STRONG> on attempts to use color values outside
the range <STRONG>0</STRONG> to COLORS-1 (except for the default colors ex-
- tension), or use color pairs outside the range <STRONG>0</STRONG> to <STRONG>COL-</STRONG>
- <STRONG>OR_PAIRS-1</STRONG>. Color values used in <STRONG>init_color</STRONG> must be in
- the range <STRONG>0</STRONG> to <STRONG>1000</STRONG>. An error is returned from all func-
- tions if the terminal has not been initialized. An error
- is returned from secondary functions such as <STRONG>init_pair</STRONG> if
+ tension), or use color pairs outside the range <STRONG>0</STRONG> to <STRONG>COL-</STRONG>
+ <STRONG>OR_PAIRS-1</STRONG>. Color values used in <STRONG>init_color</STRONG> must be in
+ the range <STRONG>0</STRONG> to <STRONG>1000</STRONG>. An error is returned from all func-
+ tions if the terminal has not been initialized. An error
+ is returned from secondary functions such as <STRONG>init_pair</STRONG> if
<STRONG>start_color</STRONG> was not called.
<STRONG>init_color</STRONG>
- returns an error if the terminal does not support
- this feature, e.g., if the <EM>initialize</EM><STRONG>_</STRONG><EM>color</EM> capa-
+ returns an error if the terminal does not support
+ this feature, e.g., if the <EM>initialize</EM><STRONG>_</STRONG><EM>color</EM> capa-
bility is absent from the terminal description.
<STRONG>start_color</STRONG>
- returns an error if the color table cannot be al-
+ returns an error if the color table cannot be al-
located.
</PRE>
<H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- In the <EM>ncurses</EM> implementation, there is a separate color
+ In the <EM>ncurses</EM> implementation, there is a separate color
activation flag, color palette, color pairs table, and as-
- sociated COLORS and COLOR_PAIRS counts for each screen;
- the <STRONG>start_color</STRONG> function only affects the current screen.
+ sociated COLORS and COLOR_PAIRS counts for each screen;
+ the <STRONG>start_color</STRONG> function only affects the current screen.
The SVr4/XSI interface is not really designed with this in
- mind, and historical implementations may use a single
+ mind, and historical implementations may use a single
shared color palette.
Note that setting an implicit background color via a color
- pair affects only character cells that a character write
- operation explicitly touches. To change the background
- color used when parts of a window are blanked by erasing
+ pair affects only character cells that a character write
+ operation explicitly touches. To change the background
+ color used when parts of a window are blanked by erasing
or scrolling operations, see <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>.
- Several caveats apply on 386 and 486 machines with VGA-
+ Several caveats apply on 386 and 486 machines with VGA-
compatible graphics:
- <STRONG>o</STRONG> COLOR_YELLOW is actually brown. To get yellow, use
+ <STRONG>o</STRONG> COLOR_YELLOW is actually brown. To get yellow, use
COLOR_YELLOW combined with the <STRONG>A_BOLD</STRONG> attribute.
<STRONG>o</STRONG> The A_BLINK attribute should in theory cause the back-
- ground to go bright. This often fails to work, and
+ ground to go bright. This often fails to work, and
even some cards for which it mostly works (such as the
- Paradise and compatibles) do the wrong thing when you
- try to set a bright "yellow" background (you get a
+ Paradise and compatibles) do the wrong thing when you
+ try to set a bright "yellow" background (you get a
blinking yellow foreground instead).
<STRONG>o</STRONG> Color RGB values are not settable.
</PRE>
<H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- This implementation satisfies XSI Curses's minimum maxi-
+ This implementation satisfies XSI Curses's minimum maxi-
mums for <STRONG>COLORS</STRONG> and <STRONG>COLOR_PAIRS</STRONG>.
- The <STRONG>init_pair</STRONG> routine accepts negative values of fore-
- ground and background color to support the <STRONG>use_de-</STRONG>
- <STRONG>fault_colors</STRONG> extension, but only if that routine has been
+ The <STRONG>init_pair</STRONG> routine accepts negative values of fore-
+ ground and background color to support the <STRONG>use_de-</STRONG>
+ <STRONG>fault_colors</STRONG> extension, but only if that routine has been
first invoked.
- The assumption that <STRONG>COLOR_BLACK</STRONG> is the default background
- color for all terminals can be modified using the <STRONG>as-</STRONG>
+ The assumption that <STRONG>COLOR_BLACK</STRONG> is the default background
+ color for all terminals can be modified using the <STRONG>as-</STRONG>
<STRONG>sume_default_colors</STRONG> extension.
- This implementation checks the pointers, e.g., for the
- values returned by <STRONG>color_content</STRONG> and <STRONG>pair_content</STRONG>, and
+ This implementation checks the pointers, e.g., for the
+ values returned by <STRONG>color_content</STRONG> and <STRONG>pair_content</STRONG>, and
will treat those as optional parameters when null.
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_delch 3x</H1>
-<HR>
+<H1 class="no-header">curs_delch 3x</H1>
<PRE>
<STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG> <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_deleteln 3x</H1>
-<HR>
+<H1 class="no-header">curs_deleteln 3x</H1>
<PRE>
<STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG> <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_extend 3x</H1>
-<HR>
+<H1 class="no-header">curs_extend 3x</H1>
<PRE>
<STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG> <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_get_wch 3x</H1>
-<HR>
+<H1 class="no-header">curs_get_wch 3x</H1>
<PRE>
<STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG> <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_get_wstr 3x</H1>
-<HR>
+<H1 class="no-header">curs_get_wstr 3x</H1>
<PRE>
<STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG> <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_getcchar 3x</H1>
-<HR>
+<H1 class="no-header">curs_getcchar 3x</H1>
<PRE>
<STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG> <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
<!--
* t
****************************************************************************
- * Copyright (c) 1998-2012,2014 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2014,2015 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: curs_getch.3x,v 1.39 2014/05/24 20:16:31 tom Exp @
+ * @Id: curs_getch.3x,v 1.40 2015/04/11 10:23:49 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_getch 3x</H1>
-<HR>
+<H1 class="no-header">curs_getch 3x</H1>
<PRE>
<STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
| <STRONG>C1</STRONG> | <STRONG>down</STRONG> | <STRONG>C3</STRONG> |
+-----+------+-------+
The <STRONG>has_key</STRONG> routine takes a key value from the above list,
- and returns TRUE or FALSE according to whether the current
+ and returns <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG> according to whether the current
terminal type recognizes a key with that value. Note that
a few values do not correspond to a real key, e.g.,
<STRONG>KEY_RESIZE</STRONG> and <STRONG>KEY_MOUSE</STRONG>. See <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> for more de-
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_getstr 3x</H1>
-<HR>
+<H1 class="no-header">curs_getstr 3x</H1>
<PRE>
<STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG> <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_getyx 3x</H1>
-<HR>
+<H1 class="no-header">curs_getyx 3x</H1>
<PRE>
<STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG> <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_in_wch 3x</H1>
-<HR>
+<H1 class="no-header">curs_in_wch 3x</H1>
<PRE>
<STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG> <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_in_wchstr 3x</H1>
-<HR>
+<H1 class="no-header">curs_in_wchstr 3x</H1>
<PRE>
<STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG> <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_inch 3x</H1>
-<HR>
+<H1 class="no-header">curs_inch 3x</H1>
<PRE>
<STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG> <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_inchstr 3x</H1>
-<HR>
+<H1 class="no-header">curs_inchstr 3x</H1>
<PRE>
<STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG> <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_initscr 3x</H1>
-<HR>
+<H1 class="no-header">curs_initscr 3x</H1>
<PRE>
<STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG> <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
<!--
****************************************************************************
- * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2013,2015 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: curs_inopts.3x,v 1.18 2013/07/20 19:42:02 tom Exp @
+ * @Id: curs_inopts.3x,v 1.19 2015/04/11 10:21:38 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_inopts 3x</H1>
-<HR>
+<H1 class="no-header">curs_inopts 3x</H1>
<PRE>
<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
</PRE>
<H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
+ The <STRONG>ncurses</STRONG> library provides several functions which let
+ an application change way input from the terminal is han-
+ dled. Some are global, applying to all windows. Others
+ apply only to a specific window. Window-specific settings
+ are not automatically applied to new or derived windows.
+ An application must apply these to each window, if the
+ same behavior is needed.
+
+
+</PRE>
+<H3><a name="h3-cbreak">cbreak</a></H3><PRE>
Normally, the tty driver buffers typed characters until a
newline or carriage return is typed. The <STRONG>cbreak</STRONG> routine
disables line buffering and erase/kill character-process-
rides <STRONG>raw</STRONG>. [See <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> for a discussion of how
these routines interact with <STRONG>echo</STRONG> and <STRONG>noecho</STRONG>.]
+
+</PRE>
+<H3><a name="h3-echo_noecho">echo/noecho</a></H3><PRE>
The <STRONG>echo</STRONG> and <STRONG>noecho</STRONG> routines control whether characters
typed by the user are echoed by <STRONG>getch</STRONG> as they are typed.
Echoing by the tty driver is always disabled, but initial-
[See <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> for a discussion of how these routines
interact with <STRONG>cbreak</STRONG> and <STRONG>nocbreak</STRONG>.]
+
+</PRE>
+<H3><a name="h3-halfdelay">halfdelay</a></H3><PRE>
The <STRONG>halfdelay</STRONG> routine is used for half-delay mode, which
is similar to <STRONG>cbreak</STRONG> mode in that characters typed by the
user are immediately available to the program. However,
must be a number between 1 and 255. Use <STRONG>nocbreak</STRONG> to leave
half-delay mode.
+
+</PRE>
+<H3><a name="h3-intrflush">intrflush</a></H3><PRE>
If the <STRONG>intrflush</STRONG> option is enabled, (<EM>bf</EM> is <STRONG>TRUE</STRONG>), when an
interrupt key is pressed on the keyboard (interrupt,
break, quit) all output in the tty driver queue will be
ited from the tty driver settings. The window argument is
ignored.
+
+</PRE>
+<H3><a name="h3-keypad">keypad</a></H3><PRE>
The <STRONG>keypad</STRONG> option enables the keypad of the user's termi-
nal. If enabled (<EM>bf</EM> is <STRONG>TRUE</STRONG>), the user can press a func-
tion key (such as an arrow key) and <STRONG>wgetch</STRONG> returns a sin-
turned on (made to transmit) and off (made to work local-
ly), turning on this option causes the terminal keypad to
be turned on when <STRONG>wgetch</STRONG> is called. The default value for
- keypad is false.
+ keypad is <STRONG>FALSE</STRONG>.
+
+</PRE>
+<H3><a name="h3-meta">meta</a></H3><PRE>
Initially, whether the terminal returns 7 or 8 significant
bits on input depends on the control mode of the tty driv-
er [see <STRONG>termio(7)</STRONG>]. To force 8 bits to be returned, in-
<STRONG>meta</STRONG>(<EM>win</EM>, <STRONG>TRUE</STRONG>) is called and <STRONG>rmm</STRONG> is sent when <STRONG>meta</STRONG>(<EM>win</EM>,
<STRONG>FALSE</STRONG>) is called.
+
+</PRE>
+<H3><a name="h3-nodelay">nodelay</a></H3><PRE>
The <STRONG>nodelay</STRONG> option causes <STRONG>getch</STRONG> to be a non-blocking call.
If no input is ready, <STRONG>getch</STRONG> returns <STRONG>ERR</STRONG>. If disabled (<EM>bf</EM>
is <STRONG>FALSE</STRONG>), <STRONG>getch</STRONG> waits until a key is pressed.
tween sequences received from a function key and those
typed by a user.
+
+</PRE>
+<H3><a name="h3-raw_noraw">raw/noraw</a></H3><PRE>
The <STRONG>raw</STRONG> and <STRONG>noraw</STRONG> routines place the terminal into or out
of raw mode. Raw mode is similar to <STRONG>cbreak</STRONG> mode, in that
characters typed are immediately passed through to the us-
signal. The behavior of the BREAK key depends on other
bits in the tty driver that are not set by <STRONG>curses</STRONG>.
+
+</PRE>
+<H3><a name="h3-noqiflush">noqiflush</a></H3><PRE>
When the <STRONG>noqiflush</STRONG> routine is used, normal flush of input
and output queues associated with the <STRONG>INTR</STRONG>, <STRONG>QUIT</STRONG> and <STRONG>SUSP</STRONG>
characters will not be done [see <STRONG>termio(7)</STRONG>]. When <STRONG>qiflush</STRONG>
a signal handler if you want output to continue as though
the interrupt had not occurred, after the handler exits.
+
+</PRE>
+<H3><a name="h3-timeout_wtimeout">timeout/wtimeout</a></H3><PRE>
The <STRONG>timeout</STRONG> and <STRONG>wtimeout</STRONG> routines set blocking or non-
blocking read for a given window. If <EM>delay</EM> is negative,
blocking read is used (i.e., waits indefinitely for in-
additional capability of being able to block for only <EM>de-</EM>
<EM>lay</EM> milliseconds (where <EM>delay</EM> is positive).
+
+</PRE>
+<H3><a name="h3-typeahead">typeahead</a></H3><PRE>
The <STRONG>curses</STRONG> library does "line-breakout optimization" by
looking for typeahead periodically while updating the
screen. If input is found, and it is coming from a tty,
<ul>
<li><a href="#h2-NAME">NAME</a></li>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
-<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
+<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
+<ul>
+<li><a href="#h3-cbreak">cbreak</a></li>
+<li><a href="#h3-echo_noecho">echo/noecho</a></li>
+<li><a href="#h3-halfdelay">halfdelay</a></li>
+<li><a href="#h3-intrflush">intrflush</a></li>
+<li><a href="#h3-keypad">keypad</a></li>
+<li><a href="#h3-meta">meta</a></li>
+<li><a href="#h3-nodelay">nodelay</a></li>
+<li><a href="#h3-raw_noraw">raw/noraw</a></li>
+<li><a href="#h3-noqiflush">noqiflush</a></li>
+<li><a href="#h3-timeout_wtimeout">timeout/wtimeout</a></li>
+<li><a href="#h3-typeahead">typeahead</a></li>
+</ul>
+</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-NOTES">NOTES</a></li>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_ins_wch 3x</H1>
-<HR>
+<H1 class="no-header">curs_ins_wch 3x</H1>
<PRE>
<STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG> <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_ins_wstr 3x</H1>
-<HR>
+<H1 class="no-header">curs_ins_wstr 3x</H1>
<PRE>
<STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG> <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_insch 3x</H1>
-<HR>
+<H1 class="no-header">curs_insch 3x</H1>
<PRE>
<STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG> <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_insstr 3x</H1>
-<HR>
+<H1 class="no-header">curs_insstr 3x</H1>
<PRE>
<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG> <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_instr 3x</H1>
-<HR>
+<H1 class="no-header">curs_instr 3x</H1>
<PRE>
<STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG> <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_inwstr 3x</H1>
-<HR>
+<H1 class="no-header">curs_inwstr 3x</H1>
<PRE>
<STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG> <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_kernel 3x</H1>
-<HR>
+<H1 class="no-header">curs_kernel 3x</H1>
<PRE>
<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG> <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_legacy 3x</H1>
-<HR>
+<H1 class="no-header">curs_legacy 3x</H1>
<PRE>
<STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG> <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_memleaks 3x</H1>
-<HR>
+<H1 class="no-header">curs_memleaks 3x</H1>
<PRE>
<STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG> <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>
<!--
* t
****************************************************************************
- * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2014,2015 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: curs_mouse.3x,v 1.40 2014/10/10 09:31:18 tom Exp @
+ * @Id: curs_mouse.3x,v 1.41 2015/04/11 10:23:49 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_mouse 3x</H1>
-<HR>
+<H1 class="no-header">curs_mouse 3x</H1>
<PRE>
<STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>
The <STRONG>wenclose</STRONG> function tests whether a given pair of
screen-relative character-cell coordinates is enclosed by
- a given window, returning TRUE if it is and FALSE other-
+ a given window, returning <STRONG>TRUE</STRONG> if it is and <STRONG>FALSE</STRONG> other-
wise. It is useful for determining what subset of the
screen windows enclose the location of a mouse event.
<STRONG>val(-1)</STRONG> to obtain the interval without altering it. The
default is one sixth of a second.
- The <STRONG>has_mouse</STRONG> function returns TRUE if the mouse driver
+ The <STRONG>has_mouse</STRONG> function returns <STRONG>TRUE</STRONG> if the mouse driver
has been successfully initialized.
Note that mouse events will be ignored when input is in
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_move 3x</H1>
-<HR>
+<H1 class="no-header">curs_move 3x</H1>
<PRE>
<STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG> <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
<!--
****************************************************************************
- * Copyright (c) 2007-2013,2014 Free Software Foundation, Inc. *
+ * Copyright (c) 2007-2014,2015 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: curs_opaque.3x,v 1.11 2014/03/15 19:24:23 tom Exp @
+ * @Id: curs_opaque.3x,v 1.12 2015/04/11 10:23:49 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_opaque 3x</H1>
-<HR>
+<H1 class="no-header">curs_opaque 3x</H1>
<PRE>
<STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG> <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>
returns the value set in <STRONG>notimeout</STRONG>
<STRONG>is_pad</STRONG>
- returns TRUE if the window is a pad i.e., created by
+ returns <STRONG>TRUE</STRONG> if the window is a pad i.e., created by
<STRONG>newpad</STRONG>
<STRONG>is_scrollok</STRONG>
returns the value set in <STRONG>scrollok</STRONG>
<STRONG>is_subwin</STRONG>
- returns TRUE if the window is a subwindow, i.e., cre-
+ returns <STRONG>TRUE</STRONG> if the window is a subwindow, i.e., cre-
ated by <STRONG>subwin</STRONG> or <STRONG>derwin</STRONG>
<STRONG>is_syncok</STRONG>
</PRE>
<H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- These functions all return TRUE or FALSE, except as noted.
+ These functions all return <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>, except as noted.
</PRE>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_outopts 3x</H1>
-<HR>
+<H1 class="no-header">curs_outopts 3x</H1>
<PRE>
<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG> <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_overlay 3x</H1>
-<HR>
+<H1 class="no-header">curs_overlay 3x</H1>
<PRE>
<STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG> <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_pad 3x</H1>
-<HR>
+<H1 class="no-header">curs_pad 3x</H1>
<PRE>
<STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG> <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_print 3x</H1>
-<HR>
+<H1 class="no-header">curs_print 3x</H1>
<PRE>
<STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG> <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_printw 3x</H1>
-<HR>
+<H1 class="no-header">curs_printw 3x</H1>
<PRE>
<STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG> <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_refresh 3x</H1>
-<HR>
+<H1 class="no-header">curs_refresh 3x</H1>
<PRE>
<STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG> <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_scanw 3x</H1>
-<HR>
+<H1 class="no-header">curs_scanw 3x</H1>
<PRE>
<STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG> <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_scr_dump 3x</H1>
-<HR>
+<H1 class="no-header">curs_scr_dump 3x</H1>
<PRE>
<STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG> <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_scroll 3x</H1>
-<HR>
+<H1 class="no-header">curs_scroll 3x</H1>
<PRE>
<STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG> <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_slk 3x</H1>
-<HR>
+<H1 class="no-header">curs_slk 3x</H1>
<PRE>
<STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_sp_funcs 3x</H1>
-<HR>
+<H1 class="no-header">curs_sp_funcs 3x</H1>
<PRE>
<STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG> <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_termattrs 3x</H1>
-<HR>
+<H1 class="no-header">curs_termattrs 3x</H1>
<PRE>
<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG> <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
<!--
****************************************************************************
- * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2013,2015 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: curs_termcap.3x,v 1.30 2013/01/19 15:58:48 tom Exp @
+ * @Id: curs_termcap.3x,v 1.31 2015/04/26 00:49:10 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_termcap 3x</H1>
-<HR>
+<H1 class="no-header">curs_termcap 3x</H1>
<PRE>
<STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG> <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
The <STRONG>tgetstr</STRONG> routine returns the string entry for <EM>id</EM>, or
zero if it is not available. Use <STRONG>tputs</STRONG> to output the re-
- turned string. The return value will also be copied to
- the buffer pointed to by <EM>area</EM>, and the <EM>area</EM> value will be
- updated to point past the null ending this value.
+ turned string. The <EM>area</EM> parameter is used as follows:
+
+ <STRONG>o</STRONG> It is assumed to be the address of a pointer to a
+ buffer managed by the calling application.
+
+ <STRONG>o</STRONG> However, ncurses checks to ensure that <STRONG>area</STRONG> is not
+ NULL, and also that the resulting buffer pointer is
+ not NULL. If either check fails, the <EM>area</EM> parame-
+ ter is ignored.
+
+ <STRONG>o</STRONG> If the checks succeed, ncurses also copies the re-
+ turn value to the buffer pointed to by <EM>area</EM>, and
+ the <EM>area</EM> value will be updated to point past the
+ null ending this value.
+
+ <STRONG>o</STRONG> The return value itself is an address in the termi-
+ nal description which is loaded into memory.
Only the first two characters of the <STRONG>id</STRONG> parameter of <STRONG>tget-</STRONG>
<STRONG>flag</STRONG>, <STRONG>tgetnum</STRONG> and <STRONG>tgetstr</STRONG> are compared in lookups.
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_terminfo 3x</H1>
-<HR>
+<H1 class="no-header">curs_terminfo 3x</H1>
<PRE>
<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
<!--
****************************************************************************
- * Copyright (c) 2008-2012,2014 Free Software Foundation, Inc. *
+ * Copyright (c) 2008-2014,2015 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: curs_threads.3x,v 1.20 2014/03/15 19:25:28 tom Exp @
+ * @Id: curs_threads.3x,v 1.21 2015/04/11 10:23:49 tom Exp @
* ***************************************************************************
* ***************************************************************************
-->
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_threads 3x</H1>
-<HR>
+<H1 class="no-header">curs_threads 3x</H1>
<PRE>
<STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG> <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>
</PRE>
<H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- These functions all return TRUE or FALSE, except as noted.
+ These functions all return <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>, except as noted.
</PRE>
<!--
****************************************************************************
- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2020,2015 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: curs_touch.3x,v 1.14 2010/12/04 18:38:55 tom Exp @
+ * @Id: curs_touch.3x,v 1.15 2015/04/11 10:23:49 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_touch 3x</H1>
-<HR>
+<H1 class="no-header">curs_touch 3x</H1>
<PRE>
<STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG> <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
<STRONG>is_linetouched</STRONG>
returns an error if the window pointer is
null, or if the line number is outside the
- window. Note that ERR is distinct from TRUE
- and FALSE, which are the normal return values
+ window. Note that ERR is distinct from <STRONG>TRUE</STRONG>
+ and <STRONG>FALSE</STRONG>, which are the normal return values
of this function.
<STRONG>wtouchln</STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_trace 3x</H1>
-<HR>
+<H1 class="no-header">curs_trace 3x</H1>
<PRE>
<STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG> <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>
<!--
* t
****************************************************************************
- * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2013,2015 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: curs_util.3x,v 1.37 2013/07/20 19:43:45 tom Exp @
+ * @Id: curs_util.3x,v 1.42 2015/04/26 14:27:03 Sven.Joachim Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_util 3x</H1>
-<HR>
+<H1 class="no-header">curs_util 3x</H1>
<PRE>
<STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
The <STRONG>keyname</STRONG> routine returns a character string correspond-
ing to the key <EM>c</EM>:
- <STRONG>o</STRONG> Printable characters are displayed as themselves,
- e.g., a one-character string containing the key.
+ <STRONG>o</STRONG> Printable characters are displayed as themselves,
+ e.g., a one-character string containing the key.
- <STRONG>o</STRONG> Control characters are displayed in the <STRONG>^</STRONG><EM>X</EM> nota-
- tion.
+ <STRONG>o</STRONG> Control characters are displayed in the <STRONG>^</STRONG><EM>X</EM> notation.
- <STRONG>o</STRONG> DEL (character 127) is displayed as <STRONG>^?</STRONG>.
+ <STRONG>o</STRONG> DEL (character 127) is displayed as <STRONG>^?</STRONG>.
- <STRONG>o</STRONG> Values above 128 are either meta characters (if the
- screen has not been initialized, or if <STRONG>meta</STRONG> has
- been called with a TRUE parameter), shown in the
- <STRONG>M-</STRONG><EM>X</EM> notation, or are displayed as themselves. In
- the latter case, the values may not be printable;
- this follows the X/Open specification.
+ <STRONG>o</STRONG> Values above 128 are either meta characters (if the
+ screen has not been initialized, or if <STRONG>meta</STRONG> has been
+ called with a <STRONG>TRUE</STRONG> parameter), shown in the <STRONG>M-</STRONG><EM>X</EM> nota-
+ tion, or are displayed as themselves. In the latter
+ case, the values may not be printable; this follows
+ the X/Open specification.
- <STRONG>o</STRONG> Values above 256 may be the names of the names of
- function keys.
+ <STRONG>o</STRONG> Values above 256 may be the names of the names of
+ function keys.
- <STRONG>o</STRONG> Otherwise (if there is no corresponding name) the
- function returns null, to denote an error. X/Open
- also lists an "UNKNOWN KEY" return value, which
- some implementations return rather than null.
+ <STRONG>o</STRONG> Otherwise (if there is no corresponding name) the
+ function returns null, to denote an error. X/Open al-
+ so lists an "UNKNOWN KEY" return value, which some im-
+ plementations return rather than null.
The corresponding <STRONG>key_name</STRONG> returns a character string cor-
- responding to the wide-character value <EM>w</EM>. The two func-
- tions do not return the same set of strings; the latter
+ responding to the wide-character value <EM>w</EM>. The two func-
+ tions do not return the same set of strings; the latter
returns null where the former would display a meta charac-
ter.
The <STRONG>filter</STRONG> routine, if used, must be called before <STRONG>initscr</STRONG>
- or <STRONG>newterm</STRONG> are called. The effect is that, during those
- calls, <STRONG>LINES</STRONG> is set to 1; the capabilities <STRONG>clear</STRONG>, <STRONG>cup</STRONG>,
- <STRONG>cud</STRONG>, <STRONG>cud1</STRONG>, <STRONG>cuu1</STRONG>, <STRONG>cuu</STRONG>, <STRONG>vpa</STRONG> are disabled; and the <STRONG>home</STRONG>
+ or <STRONG>newterm</STRONG> are called. The effect is that, during those
+ calls, <STRONG>LINES</STRONG> is set to 1; the capabilities <STRONG>clear</STRONG>, <STRONG>cup</STRONG>,
+ <STRONG>cud</STRONG>, <STRONG>cud1</STRONG>, <STRONG>cuu1</STRONG>, <STRONG>cuu</STRONG>, <STRONG>vpa</STRONG> are disabled; and the <STRONG>home</STRONG>
string is set to the value of <STRONG>cr</STRONG>.
- The <STRONG>nofilter</STRONG> routine cancels the effect of a preceding
- <STRONG>filter</STRONG> call. That allows the caller to initialize a
- screen on a different device, using a different value of
- <STRONG>$TERM</STRONG>. The limitation arises because the <STRONG>filter</STRONG> routine
+ The <STRONG>nofilter</STRONG> routine cancels the effect of a preceding
+ <STRONG>filter</STRONG> call. That allows the caller to initialize a
+ screen on a different device, using a different value of
+ <STRONG>$TERM</STRONG>. The limitation arises because the <STRONG>filter</STRONG> routine
modifies the in-memory copy of the terminal information.
- The <STRONG>use_env</STRONG> routine, if used, should be called before
- <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG> are called (because those compute the
+ The <STRONG>use_env</STRONG> routine, if used, should be called before
+ <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG> are called (because those compute the
screen size). It modifies the way <STRONG>ncurses</STRONG> treats environ-
ment variables when determining the screen size.
- <STRONG>o</STRONG> Normally ncurses looks first at the terminal database
+ <STRONG>o</STRONG> Normally ncurses looks first at the terminal database
for the screen size.
- If <STRONG>use_env</STRONG> was called with <STRONG>FALSE</STRONG> for parameter, it
- stops here unless If <STRONG>use_tioctl</STRONG> was also called with
+ If <STRONG>use_env</STRONG> was called with <STRONG>FALSE</STRONG> for parameter, it
+ stops here unless If <STRONG>use_tioctl</STRONG> was also called with
<STRONG>TRUE</STRONG> for parameter.
- <STRONG>o</STRONG> Then it asks for the screen size via operating system
- calls. If successful, it overrides the values from
+ <STRONG>o</STRONG> Then it asks for the screen size via operating system
+ calls. If successful, it overrides the values from
the terminal database.
- <STRONG>o</STRONG> Finally (unless <STRONG>use_env</STRONG> was called with <STRONG>FALSE</STRONG> parame-
- ter), ncurses examines the <STRONG>LINES</STRONG> or <STRONG>COLUMNS</STRONG> environ-
+ <STRONG>o</STRONG> Finally (unless <STRONG>use_env</STRONG> was called with <STRONG>FALSE</STRONG> parame-
+ ter), ncurses examines the <STRONG>LINES</STRONG> or <STRONG>COLUMNS</STRONG> environ-
ment variables, using a value in those to override the
- results from the operating system or terminal data-
+ results from the operating system or terminal data-
base.
- Ncurses also updates the screen size in response to
- SIGWINCH, unless overridden by the <STRONG>LINES</STRONG> or <STRONG>COLUMNS</STRONG>
+ Ncurses also updates the screen size in response to
+ SIGWINCH, unless overridden by the <STRONG>LINES</STRONG> or <STRONG>COLUMNS</STRONG>
environment variables,
- The <STRONG>use_tioctl</STRONG> routine, if used, should be called before
- <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG> are called (because those compute the
- screen size). After <STRONG>use_tioctl</STRONG> is called with <STRONG>TRUE</STRONG> as an
- argument, ncurses modifies the last step in its computa-
+ The <STRONG>use_tioctl</STRONG> routine, if used, should be called before
+ <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG> are called (because those compute the
+ screen size). After <STRONG>use_tioctl</STRONG> is called with <STRONG>TRUE</STRONG> as an
+ argument, ncurses modifies the last step in its computa-
tion of screen size as follows:
- <STRONG>o</STRONG> checks if the <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> environment variables
+ <STRONG>o</STRONG> checks if the <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> environment variables
are set to a number greater than zero.
- <STRONG>o</STRONG> for each, ncurses updates the corresponding environ-
- ment variable with the value that it has obtained via
+ <STRONG>o</STRONG> for each, ncurses updates the corresponding environ-
+ ment variable with the value that it has obtained via
operating system call or from the terminal database.
- <STRONG>o</STRONG> ncurses re-fetches the value of the environment vari-
- ables so that it is still the environment variables
+ <STRONG>o</STRONG> ncurses re-fetches the value of the environment vari-
+ ables so that it is still the environment variables
which set the screen size.
- The <STRONG>use_env</STRONG> and <STRONG>use_tioctl</STRONG> routines combine as summarized
+ The <STRONG>use_env</STRONG> and <STRONG>use_tioctl</STRONG> routines combine as summarized
here:
<EM>use</EM><STRONG>_</STRONG><EM>env</EM> <EM>use</EM><STRONG>_</STRONG><EM>tioctl</EM> <EM>Summary</EM>
----------------------------------------------------------------
- TRUE FALSE This is the default behavior. ncurses
+ TRUE FALSE This is the default behavior. ncurses
uses operating system calls unless over-
ridden by $LINES or $COLUMNS environment
variables.
- TRUE TRUE ncurses updates $LINES and $COLUMNS
+ TRUE TRUE ncurses updates $LINES and $COLUMNS
based on operating system calls.
+
FALSE TRUE ncurses ignores $LINES and $COLUMNS, us-
es operating system calls to obtain
size.
- FALSE FALSE ncurses relies on the terminal database
+ FALSE FALSE ncurses relies on the terminal database
to determine size.
- The <STRONG>putwin</STRONG> routine writes all data associated with window
- <EM>win</EM> into the file to which <EM>filep</EM> points. This information
- can be later retrieved using the <STRONG>getwin</STRONG> function.
+ The <STRONG>putwin</STRONG> routine writes all data associated with window
+ (or pad) <EM>win</EM> into the file to which <EM>filep</EM> points. This
+ information can be later retrieved using the <STRONG>getwin</STRONG> func-
+ tion.
The <STRONG>getwin</STRONG> routine reads window related data stored in the
file by <STRONG>putwin</STRONG>. The routine then creates and initializes
a new window using that data. It returns a pointer to the
- new window.
-
- The <STRONG>delay_output</STRONG> routine inserts an <EM>ms</EM> millisecond pause
- in output. This routine should not be used extensively
- because padding characters are used rather than a CPU
- pause. If no padding character is specified, this uses
+ new window. There are a few caveats:
+
+ <STRONG>o</STRONG> the data written is a copy of the <STRONG>WINDOW</STRONG> structure,
+ and its associated character cells. The format dif-
+ fers between the wide-character (ncursesw) and non-
+ wide (ncurses) libraries. You can transfer data be-
+ tween the two, however.
+
+ <STRONG>o</STRONG> the retrieved window is always created as a top-level
+ window (or pad), rather than a subwindow.
+
+ <STRONG>o</STRONG> the window's character cells contain the color pair
+ <EM>value</EM>, but not the actual color <EM>numbers</EM>. If cells in
+ the retrieved window use color pairs which have not
+ been created in the application using <STRONG>init_pair</STRONG>, they
+ will not be colored when the window is refreshed.
+
+ The <STRONG>delay_output</STRONG> routine inserts an <EM>ms</EM> millisecond pause
+ in output. This routine should not be used extensively
+ because padding characters are used rather than a CPU
+ pause. If no padding character is specified, this uses
<STRONG>napms</STRONG> to perform the delay.
- The <STRONG>flushinp</STRONG> routine throws away any typeahead that has
- been typed by the user and has not yet been read by the
+ The <STRONG>flushinp</STRONG> routine throws away any typeahead that has
+ been typed by the user and has not yet been read by the
program.
</PRE>
<H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- Except for <STRONG>flushinp</STRONG>, routines that return an integer re-
- turn <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4 specifies only "an in-
+ Except for <STRONG>flushinp</STRONG>, routines that return an integer re-
+ turn <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4 specifies only "an in-
teger value other than <STRONG>ERR</STRONG>") upon successful completion.
Routines that return pointers return <STRONG>NULL</STRONG> on error.
- X/Open does not define any error conditions. In this im-
+ X/Open does not define any error conditions. In this im-
plementation
<STRONG>flushinp</STRONG>
- returns an error if the terminal was not initial-
+ returns an error if the terminal was not initial-
ized.
- <STRONG>meta</STRONG> returns an error if the terminal was not initial-
+ <STRONG>meta</STRONG> returns an error if the terminal was not initial-
ized.
<STRONG>putwin</STRONG>
- returns an error if the associated <STRONG>fwrite</STRONG> calls
+ returns an error if the associated <STRONG>fwrite</STRONG> calls
return an error.
</PRE>
<H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- The XSI Curses standard, Issue 4 describes these func-
- tions. It states that <STRONG>unctrl</STRONG> and <STRONG>wunctrl</STRONG> will return a
- null pointer if unsuccessful, but does not define any er-
- ror conditions. This implementation checks for three cas-
- es:
-
- <STRONG>o</STRONG> the parameter is a 7-bit US-ASCII code. This is
- the case that X/Open Curses documented.
-
- <STRONG>o</STRONG> the parameter is in the range 128-159, i.e., a C1
- control code. If <STRONG>use_legacy_coding</STRONG> has been called
- with a <STRONG>2</STRONG> parameter, <STRONG>unctrl</STRONG> returns the parameter,
- i.e., a one-character string with the parameter as
- the first character. Otherwise, it returns "~@",
- "~A", etc., analogous to "^@", "^A", C0 controls.
-
- X/Open Curses does not document whether <STRONG>unctrl</STRONG> can
- be called before initializing curses. This imple-
- mentation permits that, and returns the "~@", etc.,
- values in that case.
-
- <STRONG>o</STRONG> parameter values outside the 0 to 255 range. <STRONG>unc-</STRONG>
- <STRONG>trl</STRONG> returns a null pointer.
+</PRE>
+<H3><a name="h3-filter">filter</a></H3><PRE>
The SVr4 documentation describes the action of <STRONG>filter</STRONG> only
- in the vaguest terms. The description here is adapted
- from the XSI Curses standard (which erroneously fails to
+ in the vaguest terms. The description here is adapted
+ from the XSI Curses standard (which erroneously fails to
describe the disabling of <STRONG>cuu</STRONG>).
- The strings returned by <STRONG>unctrl</STRONG> in this implementation are
- determined at compile time, showing C1 controls from the
- upper-128 codes with a `~' prefix rather than `^'. Other
- implementations have different conventions. For example,
- they may show both sets of control characters with `^',
- and strip the parameter to 7 bits. Or they may ignore C1
- controls and treat all of the upper-128 codes as print-
- able. This implementation uses 8 bits but does not modify
- the string to reflect locale. The <STRONG>use_legacy_coding</STRONG> func-
- tion allows the caller to change the output of <STRONG>unctrl</STRONG>.
-
- Likewise, the <STRONG>meta</STRONG> function allows the caller to change
- the output of <STRONG>keyname</STRONG>, i.e., it determines whether to use
- the `M-' prefix for "meta" keys (codes in the range 128 to
- 255). Both <STRONG>use_legacy_coding</STRONG> and <STRONG>meta</STRONG> succeed only after
- curses is initialized. X/Open Curses does not document
- the treatment of codes 128 to 159. When treating them as
- "meta" keys (or if <STRONG>keyname</STRONG> is called before initializing
- curses), this implementation returns strings "M-^@",
- "M-^A", etc.
+</PRE>
+<H3><a name="h3-keyname">keyname</a></H3><PRE>
The <STRONG>keyname</STRONG> function may return the names of user-defined
string capabilities which are defined in the terminfo en-
try via the <STRONG>-x</STRONG> option of <STRONG>tic</STRONG>. This implementation auto-
loaded when the terminal description is read by the li-
brary.
+
+</PRE>
+<H3><a name="h3-nofilter_use_tioctl">nofilter/use_tioctl</a></H3><PRE>
The <STRONG>nofilter</STRONG> and <STRONG>use_tioctl</STRONG> routines are specific to
ncurses. They were not supported on Version 7, BSD or
System V implementations. It is recommended that any code
NCURSES_VERSION.
+</PRE>
+<H3><a name="h3-putwin_getwin">putwin/getwin</a></H3><PRE>
+ The <STRONG>putwin</STRONG> and <STRONG>getwin</STRONG> functions have several issues with
+ portability:
+
+ <STRONG>o</STRONG> The files written and read by these functions use an
+ implementation-specific format. Although the format
+ is an obvious target for standardization, it has been
+ overlooked.
+
+ Interestingly enough, according to the copyright dates
+ in Solaris source, the functions (along with <STRONG>scr_init</STRONG>,
+ etc.) originated with the University of California,
+ Berkeley (in 1982) and were later (in 1988) incorpo-
+ rated into SVr4. Oddly, there are no such functions
+ in the 4.3BSD curses sources.
+
+ <STRONG>o</STRONG> Most implementations simply dump the binary <STRONG>WINDOW</STRONG>
+ structure to the file. These include SVr4 curses,
+ NetBSD and PDCurses, as well as older ncurses ver-
+ sions. This implementation (as well as the X/Open
+ variant of Solaris curses, dated 1995) uses textual
+ dumps.
+
+ The implementations which use binary dumps use block-
+ I/O (the <STRONG>fwrite</STRONG> and <STRONG>fread</STRONG> functions). Those that use
+ textual dumps use buffered-I/O. A few applications
+ may happen to write extra data in the file using these
+ functions. Doing that can run into problems mixing
+ block- and buffered-I/O. This implementation reduces
+ the problem on writes by flushing the output. Howev-
+ er, reading from a file written using mixed schemes
+ may not be successful.
+
+
+</PRE>
+<H3><a name="h3-unctrl_wunctrl">unctrl/wunctrl</a></H3><PRE>
+ The XSI Curses standard, Issue 4 describes these func-
+ tions. It states that <STRONG>unctrl</STRONG> and <STRONG>wunctrl</STRONG> will return a
+ null pointer if unsuccessful, but does not define any er-
+ ror conditions. This implementation checks for three cas-
+ es:
+
+ <STRONG>o</STRONG> the parameter is a 7-bit US-ASCII code. This is the
+ case that X/Open Curses documented.
+
+ <STRONG>o</STRONG> the parameter is in the range 128-159, i.e., a C1 con-
+ trol code. If <STRONG>use_legacy_coding</STRONG> has been called with
+ a <STRONG>2</STRONG> parameter, <STRONG>unctrl</STRONG> returns the parameter, i.e., a
+ one-character string with the parameter as the first
+ character. Otherwise, it returns "~@", "~A", etc.,
+ analogous to "^@", "^A", C0 controls.
+
+ X/Open Curses does not document whether <STRONG>unctrl</STRONG> can be
+ called before initializing curses. This implementa-
+ tion permits that, and returns the "~@", etc., values
+ in that case.
+
+ <STRONG>o</STRONG> parameter values outside the 0 to 255 range. <STRONG>unctrl</STRONG>
+ returns a null pointer.
+
+ The strings returned by <STRONG>unctrl</STRONG> in this implementation are
+ determined at compile time, showing C1 controls from the
+ upper-128 codes with a `~' prefix rather than `^'. Other
+ implementations have different conventions. For example,
+ they may show both sets of control characters with `^',
+ and strip the parameter to 7 bits. Or they may ignore C1
+ controls and treat all of the upper-128 codes as print-
+ able. This implementation uses 8 bits but does not modify
+ the string to reflect locale. The <STRONG>use_legacy_coding</STRONG> func-
+ tion allows the caller to change the output of <STRONG>unctrl</STRONG>.
+
+ Likewise, the <STRONG>meta</STRONG> function allows the caller to change
+ the output of <STRONG>keyname</STRONG>, i.e., it determines whether to use
+ the `M-' prefix for "meta" keys (codes in the range 128 to
+ 255). Both <STRONG>use_legacy_coding</STRONG> and <STRONG>meta</STRONG> succeed only after
+ curses is initialized. X/Open Curses does not document
+ the treatment of codes 128 to 159. When treating them as
+ "meta" keys (or if <STRONG>keyname</STRONG> is called before initializing
+ curses), this implementation returns strings "M-^@",
+ "M-^A", etc.
+
+
</PRE>
<H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG>curs_ker-</STRONG>
- <STRONG><A HREF="curs_kernel.3x.html">nel(3x)</A></STRONG>, <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG>lega-</STRONG>
+ <STRONG><A HREF="curs_kernel.3x.html">nel(3x)</A></STRONG>, <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG>lega-</STRONG>
<STRONG><A HREF="legacy_coding.3x.html">cy_coding(3x)</A></STRONG>.
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-PORTABILITY">PORTABILITY</a>
+<ul>
+<li><a href="#h3-filter">filter</a></li>
+<li><a href="#h3-keyname">keyname</a></li>
+<li><a href="#h3-nofilter_use_tioctl">nofilter/use_tioctl</a></li>
+<li><a href="#h3-putwin_getwin">putwin/getwin</a></li>
+<li><a href="#h3-unctrl_wunctrl">unctrl/wunctrl</a></li>
+</ul>
+</li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_variables 3x</H1>
-<HR>
+<H1 class="no-header">curs_variables 3x</H1>
<PRE>
<STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG> <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_window 3x</H1>
-<HR>
+<H1 class="no-header">curs_window 3x</H1>
<PRE>
<STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG> <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>default_colors 3x</H1>
-<HR>
+<H1 class="no-header">default_colors 3x</H1>
<PRE>
<STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG> <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>define_key 3x</H1>
-<HR>
+<H1 class="no-header">define_key 3x</H1>
<PRE>
<STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG> <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>form 3x</H1>
-<HR>
+<H1 class="no-header">form 3x</H1>
<PRE>
<STRONG><A HREF="form.3x.html">form(3x)</A></STRONG> <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for
detailed descriptions of the entry points.
- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20150215).
+ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20150516).
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>form_cursor 3x</H1>
-<HR>
+<H1 class="no-header">form_cursor 3x</H1>
<PRE>
<STRONG><A HREF="form_cursor.3x.html">form_cursor(3x)</A></STRONG> <STRONG><A HREF="form_cursor.3x.html">form_cursor(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>form_data 3x</H1>
-<HR>
+<H1 class="no-header">form_data 3x</H1>
<PRE>
<STRONG><A HREF="form_data.3x.html">form_data(3x)</A></STRONG> <STRONG><A HREF="form_data.3x.html">form_data(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>form_driver 3x</H1>
-<HR>
+<H1 class="no-header">form_driver 3x</H1>
<PRE>
<STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG> <STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>form_field 3x</H1>
-<HR>
+<H1 class="no-header">form_field 3x</H1>
<PRE>
<STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG> <STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>form_field_attributes 3x</H1>
-<HR>
+<H1 class="no-header">form_field_attributes 3x</H1>
<PRE>
<STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG> <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>form_field_buffer 3x</H1>
-<HR>
+<H1 class="no-header">form_field_buffer 3x</H1>
<PRE>
<STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG> <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>form_field_info 3x</H1>
-<HR>
+<H1 class="no-header">form_field_info 3x</H1>
<PRE>
<STRONG><A HREF="form_field_info.3x.html">form_field_info(3x)</A></STRONG> <STRONG><A HREF="form_field_info.3x.html">form_field_info(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>form_field_just 3x</H1>
-<HR>
+<H1 class="no-header">form_field_just 3x</H1>
<PRE>
<STRONG><A HREF="form_field_just.3x.html">form_field_just(3x)</A></STRONG> <STRONG><A HREF="form_field_just.3x.html">form_field_just(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>form_field_new 3x</H1>
-<HR>
+<H1 class="no-header">form_field_new 3x</H1>
<PRE>
<STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG> <STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>form_field_opts 3x</H1>
-<HR>
+<H1 class="no-header">form_field_opts 3x</H1>
<PRE>
<STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG> <STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>form_field_userptr 3x</H1>
-<HR>
+<H1 class="no-header">form_field_userptr 3x</H1>
<PRE>
<STRONG><A HREF="form_field_userptr.3x.html">form_field_userptr(3x)</A></STRONG> <STRONG><A HREF="form_field_userptr.3x.html">form_field_userptr(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>form_field_validation 3x</H1>
-<HR>
+<H1 class="no-header">form_field_validation 3x</H1>
<PRE>
<STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG> <STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>form_fieldtype 3x</H1>
-<HR>
+<H1 class="no-header">form_fieldtype 3x</H1>
<PRE>
<STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG> <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>form_hook 3x</H1>
-<HR>
+<H1 class="no-header">form_hook 3x</H1>
<PRE>
<STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG> <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>form_new 3x</H1>
-<HR>
+<H1 class="no-header">form_new 3x</H1>
<PRE>
<STRONG><A HREF="form_new.3x.html">form_new(3x)</A></STRONG> <STRONG><A HREF="form_new.3x.html">form_new(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>form_new_page 3x</H1>
-<HR>
+<H1 class="no-header">form_new_page 3x</H1>
<PRE>
<STRONG><A HREF="form_new_page.3x.html">form_new_page(3x)</A></STRONG> <STRONG><A HREF="form_new_page.3x.html">form_new_page(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>form_opts 3x</H1>
-<HR>
+<H1 class="no-header">form_opts 3x</H1>
<PRE>
<STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG> <STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>form_page 3x</H1>
-<HR>
+<H1 class="no-header">form_page 3x</H1>
<PRE>
<STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG> <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>form_post 3x</H1>
-<HR>
+<H1 class="no-header">form_post 3x</H1>
<PRE>
<STRONG><A HREF="form_post.3x.html">form_post(3x)</A></STRONG> <STRONG><A HREF="form_post.3x.html">form_post(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>form_requestname 3x</H1>
-<HR>
+<H1 class="no-header">form_requestname 3x</H1>
<PRE>
<STRONG><A HREF="form_requestname.3x.html">form_requestname(3x)</A></STRONG> <STRONG><A HREF="form_requestname.3x.html">form_requestname(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>form_userptr 3x</H1>
-<HR>
+<H1 class="no-header">form_userptr 3x</H1>
<PRE>
<STRONG><A HREF="form_userptr.3x.html">form_userptr(3x)</A></STRONG> <STRONG><A HREF="form_userptr.3x.html">form_userptr(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>form_variables 3x</H1>
-<HR>
+<H1 class="no-header">form_variables 3x</H1>
<PRE>
<STRONG><A HREF="form_variables.3x.html">form_variables(3x)</A></STRONG> <STRONG><A HREF="form_variables.3x.html">form_variables(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>form_win 3x</H1>
-<HR>
+<H1 class="no-header">form_win 3x</H1>
<PRE>
<STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG> <STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>infocmp 1m</H1>
-<HR>
+<H1 class="no-header">infocmp 1m</H1>
<PRE>
<STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>
http://invisible-island.net/ncurses/tctest.html
- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20150215).
+ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20150516).
</PRE>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>infotocap 1m</H1>
-<HR>
+<H1 class="no-header">infotocap 1m</H1>
<PRE>
<STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG> <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>
<H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20150215).
+ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20150516).
</PRE>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>key_defined 3x</H1>
-<HR>
+<H1 class="no-header">key_defined 3x</H1>
<PRE>
<STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG> <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>keybound 3x</H1>
-<HR>
+<H1 class="no-header">keybound 3x</H1>
<PRE>
<STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG> <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>keyok 3x</H1>
-<HR>
+<H1 class="no-header">keyok 3x</H1>
<PRE>
<STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG> <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>legacy_coding 3x</H1>
-<HR>
+<H1 class="no-header">legacy_coding 3x</H1>
<PRE>
<STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG> <STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>menu 3x</H1>
-<HR>
+<H1 class="no-header">menu 3x</H1>
<PRE>
<STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG> <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "menu_" for
detailed descriptions of the entry points.
- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20150215).
+ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20150516).
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>menu_attributes 3x</H1>
-<HR>
+<H1 class="no-header">menu_attributes 3x</H1>
<PRE>
<STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG> <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>menu_cursor 3x</H1>
-<HR>
+<H1 class="no-header">menu_cursor 3x</H1>
<PRE>
<STRONG><A HREF="menu_cursor.3x.html">menu_cursor(3x)</A></STRONG> <STRONG><A HREF="menu_cursor.3x.html">menu_cursor(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>menu_driver 3x</H1>
-<HR>
+<H1 class="no-header">menu_driver 3x</H1>
<PRE>
<STRONG><A HREF="menu_driver.3x.html">menu_driver(3x)</A></STRONG> <STRONG><A HREF="menu_driver.3x.html">menu_driver(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>menu_format 3x</H1>
-<HR>
+<H1 class="no-header">menu_format 3x</H1>
<PRE>
<STRONG><A HREF="menu_format.3x.html">menu_format(3x)</A></STRONG> <STRONG><A HREF="menu_format.3x.html">menu_format(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>menu_hook 3x</H1>
-<HR>
+<H1 class="no-header">menu_hook 3x</H1>
<PRE>
<STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG> <STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>menu_items 3x</H1>
-<HR>
+<H1 class="no-header">menu_items 3x</H1>
<PRE>
<STRONG><A HREF="menu_items.3x.html">menu_items(3x)</A></STRONG> <STRONG><A HREF="menu_items.3x.html">menu_items(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>menu_mark 3x</H1>
-<HR>
+<H1 class="no-header">menu_mark 3x</H1>
<PRE>
<STRONG><A HREF="menu_mark.3x.html">menu_mark(3x)</A></STRONG> <STRONG><A HREF="menu_mark.3x.html">menu_mark(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>menu_new 3x</H1>
-<HR>
+<H1 class="no-header">menu_new 3x</H1>
<PRE>
<STRONG><A HREF="menu_new.3x.html">menu_new(3x)</A></STRONG> <STRONG><A HREF="menu_new.3x.html">menu_new(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>menu_opts 3x</H1>
-<HR>
+<H1 class="no-header">menu_opts 3x</H1>
<PRE>
<STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG> <STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>menu_pattern 3x</H1>
-<HR>
+<H1 class="no-header">menu_pattern 3x</H1>
<PRE>
<STRONG><A HREF="menu_pattern.3x.html">menu_pattern(3x)</A></STRONG> <STRONG><A HREF="menu_pattern.3x.html">menu_pattern(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>menu_post 3x</H1>
-<HR>
+<H1 class="no-header">menu_post 3x</H1>
<PRE>
<STRONG><A HREF="menu_post.3x.html">menu_post(3x)</A></STRONG> <STRONG><A HREF="menu_post.3x.html">menu_post(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>menu_requestname 3x</H1>
-<HR>
+<H1 class="no-header">menu_requestname 3x</H1>
<PRE>
<STRONG><A HREF="menu_requestname.3x.html">menu_requestname(3x)</A></STRONG> <STRONG><A HREF="menu_requestname.3x.html">menu_requestname(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>menu_spacing 3x</H1>
-<HR>
+<H1 class="no-header">menu_spacing 3x</H1>
<PRE>
<STRONG><A HREF="menu_spacing.3x.html">menu_spacing(3x)</A></STRONG> <STRONG><A HREF="menu_spacing.3x.html">menu_spacing(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>menu_userptr 3x</H1>
-<HR>
+<H1 class="no-header">menu_userptr 3x</H1>
<PRE>
<STRONG><A HREF="menu_userptr.3x.html">menu_userptr(3x)</A></STRONG> <STRONG><A HREF="menu_userptr.3x.html">menu_userptr(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>menu_win 3x</H1>
-<HR>
+<H1 class="no-header">menu_win 3x</H1>
<PRE>
<STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG> <STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>mitem_current 3x</H1>
-<HR>
+<H1 class="no-header">mitem_current 3x</H1>
<PRE>
<STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG> <STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>mitem_name 3x</H1>
-<HR>
+<H1 class="no-header">mitem_name 3x</H1>
<PRE>
<STRONG><A HREF="mitem_name.3x.html">mitem_name(3x)</A></STRONG> <STRONG><A HREF="mitem_name.3x.html">mitem_name(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>mitem_new 3x</H1>
-<HR>
+<H1 class="no-header">mitem_new 3x</H1>
<PRE>
<STRONG><A HREF="mitem_new.3x.html">mitem_new(3x)</A></STRONG> <STRONG><A HREF="mitem_new.3x.html">mitem_new(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>mitem_opts 3x</H1>
-<HR>
+<H1 class="no-header">mitem_opts 3x</H1>
<PRE>
<STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG> <STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>mitem_userptr 3x</H1>
-<HR>
+<H1 class="no-header">mitem_userptr 3x</H1>
<PRE>
<STRONG><A HREF="mitem_userptr.3x.html">mitem_userptr(3x)</A></STRONG> <STRONG><A HREF="mitem_userptr.3x.html">mitem_userptr(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>mitem_value 3x</H1>
-<HR>
+<H1 class="no-header">mitem_value 3x</H1>
<PRE>
<STRONG><A HREF="mitem_value.3x.html">mitem_value(3x)</A></STRONG> <STRONG><A HREF="mitem_value.3x.html">mitem_value(3x)</A></STRONG>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>mitem_visible 3x</H1>
-<HR>
+<H1 class="no-header">mitem_visible 3x</H1>
<PRE>
<STRONG><A HREF="mitem_visible.3x.html">mitem_visible(3x)</A></STRONG> <STRONG><A HREF="mitem_visible.3x.html">mitem_visible(3x)</A></STRONG>
<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>
<STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
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 20150215).
+ <STRONG>ncurses</STRONG> version 5.9 (patch 20150516).
The <STRONG>ncurses</STRONG> library emulates the curses library of System
V Release 4 UNIX, and XPG4 (X/Open Portability Guide)
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>ncurses5-config 1</H1>
-<HR>
+<H1 class="no-header">ncurses5-config 1</H1>
<PRE>
<STRONG><A HREF="ncurses5-config.1.html">ncurses5-config(1)</A></STRONG> <STRONG><A HREF="ncurses5-config.1.html">ncurses5-config(1)</A></STRONG>
<H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20150215).
+ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20150516).
<!--
****************************************************************************
- * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2020,2015 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: panel.3x,v 1.17 2010/10/02 23:22:44 tom Exp @
+ * @Id: panel.3x,v 1.18 2015/04/11 10:23:49 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>panel 3x</H1>
-<HR>
+<H1 class="no-header">panel 3x</H1>
<PRE>
<STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG> <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG>
lost, merely removed from the stack.
<STRONG>panel_hidden(pan)</STRONG>
- returns TRUE if the panel is in the panel stack,
- FALSE if it is not. If the panel is a null
+ returns <STRONG>TRUE</STRONG> if the panel is in the panel stack,
+ <STRONG>FALSE</STRONG> if it is not. If the panel is a null
pointer, return ERR.
<STRONG>show_panel(pan)</STRONG>
<H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>,
- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20150215).
+ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20150516).
</PRE>
<!--
****************************************************************************
- * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2013,2015 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 *
* authorization. *
****************************************************************************
* Author: Thomas E. Dickey 1996-on
- * @Id: resizeterm.3x,v 1.17 2013/06/22 20:41:54 tom Exp @
+ * @Id: resizeterm.3x,v 1.18 2015/04/11 10:23:49 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>resizeterm 3x</H1>
-<HR>
+<H1 class="no-header">resizeterm 3x</H1>
<PRE>
<STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>
A support function <STRONG>is_term_resized</STRONG> is provided so that
applications can check if the <STRONG>resize_term</STRONG> function would
- modify the window structures. It returns TRUE if the win-
- dows would be modified, and FALSE otherwise.
+ modify the window structures. It returns <STRONG>TRUE</STRONG> if the win-
+ dows would be modified, and <STRONG>FALSE</STRONG> otherwise.
</PRE>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>tabs 1</H1>
-<HR>
+<H1 class="no-header">tabs 1</H1>
<PRE>
<STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG> <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>
<H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20150215).
+ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20150516).
<!--
****************************************************************************
- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2010,2015 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: term.5,v 1.21 2010/12/04 18:40:45 tom Exp @
+ * @Id: term.5,v 1.22 2015/04/26 14:50:23 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>term 5</H1>
-<HR>
+<H1 class="no-header">term 5</H1>
<PRE>
<STRONG><A HREF="term.5.html">term(5)</A></STRONG> <STRONG><A HREF="term.5.html">term(5)</A></STRONG>
bytes.
Using the counts and sizes, ncurses allocates arrays and
- reads data for the extended capabilties in the same order
+ reads data for the extended capabilities in the same order
as the header information.
The extended string table contains values for string capa-
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>term 7</H1>
-<HR>
+<H1 class="no-header">term 7</H1>
<PRE>
<STRONG><A HREF="term.7.html">term(7)</A></STRONG> <STRONG><A HREF="term.7.html">term(7)</A></STRONG>
<!--
****************************************************************************
- * Copyright (c) 2011,2013 Free Software Foundation, Inc. *
+ * Copyright (c) 2011-2013,2015 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: term_variables.3x,v 1.4 2013/12/21 22:17:39 tom Exp @
+ * @Id: term_variables.3x,v 1.6 2015/04/22 00:34:49 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>term_variables 3x</H1>
-<HR>
+<H1 class="no-header">term_variables 3x</H1>
<PRE>
<STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG> <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>
<STRONG>#include</STRONG> <STRONG><term.h></STRONG>
<STRONG>chtype</STRONG> <STRONG>acs_map[];</STRONG>
+
+ <STRONG>TERMINAL</STRONG> <STRONG>*</STRONG> <STRONG>cur_term;</STRONG>
+
+ <STRONG>char</STRONG> <STRONG>ttytype[];</STRONG>
+
<STRONG>NCURSES_CONST</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG> <STRONG>const</STRONG> <STRONG>*</STRONG> <STRONG>boolcodes;</STRONG>
<STRONG>NCURSES_CONST</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG> <STRONG>const</STRONG> <STRONG>*</STRONG> <STRONG>boolfnames;</STRONG>
<STRONG>NCURSES_CONST</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG> <STRONG>const</STRONG> <STRONG>*</STRONG> <STRONG>boolnames;</STRONG>
- <STRONG>TERMINAL</STRONG> <STRONG>*</STRONG> <STRONG>cur_term;</STRONG>
+
<STRONG>NCURSES_CONST</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG> <STRONG>const</STRONG> <STRONG>*</STRONG> <STRONG>numcodes;</STRONG>
<STRONG>NCURSES_CONST</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG> <STRONG>const</STRONG> <STRONG>*</STRONG> <STRONG>numfnames;</STRONG>
<STRONG>NCURSES_CONST</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG> <STRONG>const</STRONG> <STRONG>*</STRONG> <STRONG>numnames;</STRONG>
+
<STRONG>NCURSES_CONST</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG> <STRONG>const</STRONG> <STRONG>*</STRONG> <STRONG>strcodes;</STRONG>
<STRONG>NCURSES_CONST</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG> <STRONG>const</STRONG> <STRONG>*</STRONG> <STRONG>strfnames;</STRONG>
<STRONG>NCURSES_CONST</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG> <STRONG>const</STRONG> <STRONG>*</STRONG> <STRONG>strnames;</STRONG>
- <STRONG>char</STRONG> <STRONG>ttytype[];</STRONG>
</PRE>
The <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG> and <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> programs use lookup tables for
the long and short names of terminfo capabilities, as well
as the corresponding names for termcap capabilities.
- These are available to other applications, though the
- hash-tables are not available.
+ These are available to other applications, although the
+ hash-tables used by the terminfo and termcap functions are
+ not available.
- The long terminfo capability names use a "l" (ell) in
- their names: boolfnames numfnames strfnames
+ The long terminfo capability names use a "l" (ell) in
+ their names: <STRONG>boolfnames</STRONG>, <STRONG>numfnames</STRONG>, and <STRONG>strfnames</STRONG>.
- These are the short names for terminfo capabilities: bool-
- names, numnames, and strnames.
+ These are the short names for terminfo capabilities: <STRONG>bool-</STRONG>
+ <STRONG>names</STRONG>, <STRONG>numnames</STRONG>, and <STRONG>strnames</STRONG>.
- These are the corresponding names used for termcap de-
- scriptions: boolcodes, numcodes, and strcodes.
+ These are the corresponding names used for termcap de-
+ scriptions: <STRONG>boolcodes</STRONG>, <STRONG>numcodes</STRONG>, and <STRONG>strcodes</STRONG>.
</PRE>
<H3><a name="h3-Terminal-Type">Terminal Type</a></H3><PRE>
- On initialization of the curses or terminfo interfaces,
+ On initialization of the curses or terminfo interfaces,
<STRONG>setupterm</STRONG> copies the terminal name to the array <STRONG>ttytype</STRONG>.
+</PRE>
+<H3><a name="h3-Terminfo-Names">Terminfo Names</a></H3><PRE>
+ In addition to the variables, <STRONG><term.h></STRONG> also defines a sym-
+ bol for each terminfo capability <EM>long</EM> <EM>name</EM>. These are in
+ terms of the symbol <STRONG>CUR</STRONG>, which is defined
+
+ #define CUR cur_term->type.
+
+ These symbols provide a faster method of accessing termin-
+ fo capabilities than using <STRONG><A HREF="tigetstr.3x.html">tigetstr(3x)</A></STRONG>, etc.
+
+
</PRE>
<H2><a name="h2-NOTES">NOTES</a></H2><PRE>
The low-level terminfo interface is initialized using
implementations provide the variables in their libraries,
but omit them from the header files.
+ All implementations which provide terminfo interfaces add
+ definitions as described in the <STRONG>Terminfo</STRONG> <STRONG>Names</STRONG> section.
+ Most, but not all, base the definition upon the <STRONG>cur_term</STRONG>
+ variable.
+
</PRE>
<H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<li><a href="#h3-Current-Terminal-Data">Current Terminal Data</a></li>
<li><a href="#h3-Terminfo-Names">Terminfo Names</a></li>
<li><a href="#h3-Terminal-Type">Terminal Type</a></li>
+<li><a href="#h3-Terminfo-Names">Terminfo Names</a></li>
</ul>
</li>
<li><a href="#h2-NOTES">NOTES</a></li>
****************************************************************************
* @Id: terminfo.head,v 1.21 2013/03/09 22:11:36 tom Exp @
* Head of terminfo man page ends here
- * @Id: terminfo.tail,v 1.68 2013/11/09 15:20:48 tom Exp @
+ * @Id: terminfo.tail,v 1.69 2015/04/26 14:47:23 tom Exp @
* Beginning of terminfo.tail file
* This file is part of ncurses.
* See "terminfo.head" for copyright.
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>terminfo 5 File Formats</H1>
-<HR>
+<H1 class="no-header">terminfo 5 File Formats</H1>
<PRE>
<STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> File Formats <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
nals by giving a set of capabilities which they have, by
specifying how to perform screen operations, and by speci-
fying padding requirements and initialization sequences.
- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20150215).
+ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20150516).
Entries in <EM>terminfo</EM> consist of a sequence of `,' separated
fields (embedded commas may be escaped with a backslash or
status_line_esc_ok eslok es escape can be used
on the status line
tilde_glitch hz hz cannot print ~'s
- (hazeltine)
+ (Hazeltine)
transparent_underline ul ul underline character
color-pairs on the
screen
maximum_windows wnum MW maximum number of
- defineable windows
+ definable windows
no_color_video ncv NC video attributes
that cannot be used
with colors
multiple codesets
color_names colornm Yw Give name for
color #1
- define_bit_image_region defbi Yx Define rectan-
- gualar bit image
- region
+ define_bit_image_region defbi Yx Define rectangular
+ bit image region
device_type devt dv Indicate lan-
guage/codeset sup-
port
set_page_length slines YZ Set page length to
#1 lines
+
set_tb_margin smgtb MT Sets both top and
bottom margins to
#1, #2
- The XSI Curses standard added these hardcopy capabili-
+ The XSI Curses standard added these hardcopy capabili-
ties. They were used in some post-4.1 versions of System
V curses, e.g., Solaris 2.5 and IRIX 6.x. Except for <STRONG>YI</STRONG>,
the <STRONG>ncurses</STRONG> termcap names for them are invented. Accord-
- ing to the XSI Curses standard, they have no termcap
+ ing to the XSI Curses standard, they have no termcap
names. If your compiled terminfo entries use these, they
- may not be binary-compatible with System V terminfo
+ may not be binary-compatible with System V terminfo
entries after SVr4.1; beware!
</PRE>
<H3><a name="h3-User-Defined-Capabilities">User-Defined Capabilities</a></H3><PRE>
- The preceding section listed the <EM>predefined</EM> capabilities.
- They deal with some special features for terminals no
- longer (or possibly never) produced. Occasionally there
- are special features of newer terminals which are awkward
+ The preceding section listed the <EM>predefined</EM> capabilities.
+ They deal with some special features for terminals no
+ longer (or possibly never) produced. Occasionally there
+ are special features of newer terminals which are awkward
or impossible to represent by reusing the predefined capa-
bilities.
<STRONG>ncurses</STRONG> addresses this limitation by allowing user-defined
capabilities. The <STRONG>tic</STRONG> and <STRONG>infocmp</STRONG> programs provide the <STRONG>-x</STRONG>
- option for this purpose. When <STRONG>-x</STRONG> is set, <STRONG>tic</STRONG> treats
- unknown capabilities as user-defined. That is, if <STRONG>tic</STRONG>
- encounters a capability name which it does not recognize,
- it infers its type (boolean, number or string) from the
+ option for this purpose. When <STRONG>-x</STRONG> is set, <STRONG>tic</STRONG> treats
+ unknown capabilities as user-defined. That is, if <STRONG>tic</STRONG>
+ encounters a capability name which it does not recognize,
+ it infers its type (boolean, number or string) from the
syntax and makes an extended table entry for that capabil-
- ity. The <STRONG>use_extended_names</STRONG> function makes this informa-
+ ity. The <STRONG>use_extended_names</STRONG> function makes this informa-
tion conditionally available to applications. The ncurses
- library provides the data leaving most of the behavior to
+ library provides the data leaving most of the behavior to
applications:
<STRONG>o</STRONG> User-defined capability strings whose name begins with
"k" are treated as function keys.
- <STRONG>o</STRONG> The types (boolean, number, string) determined by <STRONG>tic</STRONG>
+ <STRONG>o</STRONG> The types (boolean, number, string) determined by <STRONG>tic</STRONG>
can be inferred by successful calls on <STRONG>tigetflag</STRONG>, etc.
- <STRONG>o</STRONG> If the capability name happens to be two characters,
- the capability is also available through the termcap
+ <STRONG>o</STRONG> If the capability name happens to be two characters,
+ the capability is also available through the termcap
interface.
While termcap is said to be extensible because it does not
- use a predefined set of capabilities, in practice it has
- been limited to the capabilities defined by terminfo
- implementations. As a rule, user-defined capabilities
+ use a predefined set of capabilities, in practice it has
+ been limited to the capabilities defined by terminfo
+ implementations. As a rule, user-defined capabilities
intended for use by termcap applications should be limited
- to booleans and numbers to avoid running past the 1023
- byte limit assumed by termcap implementations and their
- applications. In particular, providing extended sets of
- function keys (past the 60 numbered keys and the handful
+ to booleans and numbers to avoid running past the 1023
+ byte limit assumed by termcap implementations and their
+ applications. In particular, providing extended sets of
+ function keys (past the 60 numbered keys and the handful
of special named keys) is best done using the longer names
available using terminfo.
</PRE>
<H3><a name="h3-A-Sample-Entry">A Sample Entry</a></H3><PRE>
The following entry, describing an ANSI-standard terminal,
- is representative of what a <STRONG>terminfo</STRONG> entry for a modern
+ is representative of what a <STRONG>terminfo</STRONG> entry for a modern
terminal typically looks like.
ansi|ansi/pc-term compatible with color,
smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n,
u8=\E[?%[;0123456789]c, u9=\E[c, vpa=\E[%i%p1%dd,
- Entries may continue onto multiple lines by placing white
- space at the beginning of each line except the first.
- Comments may be included on lines beginning with "#".
+ Entries may continue onto multiple lines by placing white
+ space at the beginning of each line except the first.
+ Comments may be included on lines beginning with "#".
Capabilities in <EM>terminfo</EM> are of three types:
- <STRONG>o</STRONG> Boolean capabilities which indicate that the terminal
+ <STRONG>o</STRONG> Boolean capabilities which indicate that the terminal
has some particular feature,
- <STRONG>o</STRONG> numeric capabilities giving the size of the terminal
+ <STRONG>o</STRONG> numeric capabilities giving the size of the terminal
or the size of particular delays, and
- <STRONG>o</STRONG> string capabilities, which give a sequence which can
+ <STRONG>o</STRONG> string capabilities, which give a sequence which can
be used to perform particular terminal operations.
</PRE>
<H3><a name="h3-Types-of-Capabilities">Types of Capabilities</a></H3><PRE>
- All capabilities have names. For instance, the fact that
- ANSI-standard terminals have <EM>automatic</EM> <EM>margins</EM> (i.e., an
- automatic return and line-feed when the end of a line is
- reached) is indicated by the capability <STRONG>am</STRONG>. Hence the
+ All capabilities have names. For instance, the fact that
+ ANSI-standard terminals have <EM>automatic</EM> <EM>margins</EM> (i.e., an
+ automatic return and line-feed when the end of a line is
+ reached) is indicated by the capability <STRONG>am</STRONG>. Hence the
description of ansi includes <STRONG>am</STRONG>. Numeric capabilities are
- followed by the character "#" and then a positive value.
- Thus <STRONG>cols</STRONG>, which indicates the number of columns the ter-
- minal has, gives the value "80" for ansi. Values for
+ followed by the character "#" and then a positive value.
+ Thus <STRONG>cols</STRONG>, which indicates the number of columns the ter-
+ minal has, gives the value "80" for ansi. Values for
numeric capabilities may be specified in decimal, octal or
- hexadecimal, using the C programming language conventions
+ hexadecimal, using the C programming language conventions
(e.g., 255, 0377 and 0xff or 0xFF).
- Finally, string valued capabilities, such as <STRONG>el</STRONG> (clear to
+ Finally, string valued capabilities, such as <STRONG>el</STRONG> (clear to
end of line sequence) are given by the two-character code,
- an "=", and then a string ending at the next following
+ an "=", and then a string ending at the next following
",".
- A number of escape sequences are provided in the string
+ A number of escape sequences are provided in the string
valued capabilities for easy encoding of characters there.
- Both <STRONG>\E</STRONG> and <STRONG>\e</STRONG> map to an ESCAPE character, <STRONG>^x</STRONG> maps to a
- control-x for any appropriate x, and the sequences <STRONG>\n</STRONG> <STRONG>\l</STRONG>
- <STRONG>\r</STRONG> <STRONG>\t</STRONG> <STRONG>\b</STRONG> <STRONG>\f</STRONG> <STRONG>\s</STRONG> give a newline, line-feed, return, tab,
+ Both <STRONG>\E</STRONG> and <STRONG>\e</STRONG> map to an ESCAPE character, <STRONG>^x</STRONG> maps to a
+ control-x for any appropriate x, and the sequences <STRONG>\n</STRONG> <STRONG>\l</STRONG>
+ <STRONG>\r</STRONG> <STRONG>\t</STRONG> <STRONG>\b</STRONG> <STRONG>\f</STRONG> <STRONG>\s</STRONG> give a newline, line-feed, return, tab,
backspace, form-feed, and space. Other escapes include
<STRONG>o</STRONG> <STRONG>\^</STRONG> for <STRONG>^</STRONG>,
<STRONG>o</STRONG> and <STRONG>\0</STRONG> for null.
- <STRONG>\0</STRONG> will produce \200, which does not terminate a
- string but behaves as a null character on most termi-
+ <STRONG>\0</STRONG> will produce \200, which does not terminate a
+ string but behaves as a null character on most termi-
nals, providing CS7 is specified. See <STRONG>stty(1)</STRONG>.
- The reason for this quirk is to maintain binary com-
- patibility of the compiled terminfo files with other
- implementations, e.g., the SVr4 systems, which docu-
- ment this. Compiled terminfo files use null-termi-
- nated strings, with no lengths. Modifying this would
+ The reason for this quirk is to maintain binary com-
+ patibility of the compiled terminfo files with other
+ implementations, e.g., the SVr4 systems, which docu-
+ ment this. Compiled terminfo files use null-termi-
+ nated strings, with no lengths. Modifying this would
require a new binary format, which would not work with
other implementations.
- Finally, characters may be given as three octal digits
+ Finally, characters may be given as three octal digits
after a <STRONG>\</STRONG>.
- A delay in milliseconds may appear anywhere in a string
- capability, enclosed in $<..> brackets, as in <STRONG>el</STRONG>=\EK$<5>,
- and padding characters are supplied by <EM>tputs</EM> to provide
- this delay. The delay must be a number with at most one
+ A delay in milliseconds may appear anywhere in a string
+ capability, enclosed in $<..> brackets, as in <STRONG>el</STRONG>=\EK$<5>,
+ and padding characters are supplied by <EM>tputs</EM> to provide
+ this delay. The delay must be a number with at most one
decimal place of precision; it may be followed by suffixes
- "*" or "/" or both. A "*" indicates that the padding
- required is proportional to the number of lines affected
- by the operation, and the amount given is the per-
- affected-unit padding required. (In the case of insert
+ "*" or "/" or both. A "*" indicates that the padding
+ required is proportional to the number of lines affected
+ by the operation, and the amount given is the per-
+ affected-unit padding required. (In the case of insert
character, the factor is still the number of <EM>lines</EM>
- affected.) Normally, padding is advisory if the device
- has the <STRONG>xon</STRONG> capability; it is used for cost computation
- but does not trigger delays. A "/" suffix indicates that
- the padding is mandatory and forces a delay of the given
- number of milliseconds even on devices for which <STRONG>xon</STRONG> is
+ affected.) Normally, padding is advisory if the device
+ has the <STRONG>xon</STRONG> capability; it is used for cost computation
+ but does not trigger delays. A "/" suffix indicates that
+ the padding is mandatory and forces a delay of the given
+ number of milliseconds even on devices for which <STRONG>xon</STRONG> is
present to indicate flow control.
- Sometimes individual capabilities must be commented out.
- To do this, put a period before the capability name. For
+ Sometimes individual capabilities must be commented out.
+ To do this, put a period before the capability name. For
example, see the second <STRONG>ind</STRONG> in the example above.
</PRE>
<H3><a name="h3-Fetching-Compiled-Descriptions">Fetching Compiled Descriptions</a></H3><PRE>
- The <STRONG>ncurses</STRONG> library searches for terminal descriptions in
+ The <STRONG>ncurses</STRONG> library searches for terminal descriptions in
several places. It uses only the first description found.
- The library has a compiled-in list of places to search
- which can be overridden by environment variables. Before
- starting to search, <STRONG>ncurses</STRONG> eliminates duplicates in its
+ The library has a compiled-in list of places to search
+ which can be overridden by environment variables. Before
+ starting to search, <STRONG>ncurses</STRONG> eliminates duplicates in its
search list.
- <STRONG>o</STRONG> If the environment variable TERMINFO is set, it is
- interpreted as the pathname of a directory containing
- the compiled description you are working on. Only
+ <STRONG>o</STRONG> If the environment variable TERMINFO is set, it is
+ interpreted as the pathname of a directory containing
+ the compiled description you are working on. Only
that directory is searched.
- <STRONG>o</STRONG> If TERMINFO is not set, <STRONG>ncurses</STRONG> will instead look in
- the directory <STRONG>$HOME/.terminfo</STRONG> for a compiled descrip-
+ <STRONG>o</STRONG> If TERMINFO is not set, <STRONG>ncurses</STRONG> will instead look in
+ the directory <STRONG>$HOME/.terminfo</STRONG> for a compiled descrip-
tion.
- <STRONG>o</STRONG> Next, if the environment variable TERMINFO_DIRS is
+ <STRONG>o</STRONG> Next, if the environment variable TERMINFO_DIRS is
set, <STRONG>ncurses</STRONG> will interpret the contents of that vari-
- able as a list of colon-separated directories (or
+ able as a list of colon-separated directories (or
database files) to be searched.
- An empty directory name (i.e., if the variable begins
- or ends with a colon, or contains adacent colons) is
- interpreted as the system location <EM>/usr/share/ter-</EM>
+ An empty directory name (i.e., if the variable begins
+ or ends with a colon, or contains adjacent colons) is
+ interpreted as the system location <EM>/usr/share/ter-</EM>
<EM>minfo</EM>.
<STRONG>o</STRONG> Finally, <STRONG>ncurses</STRONG> searches these compiled-in locations:
- <STRONG>o</STRONG> a list of directories
+ <STRONG>o</STRONG> a list of directories
(/usr/local/ncurses/share/terminfo:/usr/share/ter-
minfo), and
</PRE>
<H3><a name="h3-Preparing-Descriptions">Preparing Descriptions</a></H3><PRE>
- We now outline how to prepare descriptions of terminals.
- The most effective way to prepare a terminal description
- is by imitating the description of a similar terminal in
- <EM>terminfo</EM> and to build up a description gradually, using
+ We now outline how to prepare descriptions of terminals.
+ The most effective way to prepare a terminal description
+ is by imitating the description of a similar terminal in
+ <EM>terminfo</EM> and to build up a description gradually, using
partial descriptions with <EM>vi</EM> or some other screen-oriented
- program to check that they are correct. Be aware that a
+ program to check that they are correct. Be aware that a
very unusual terminal may expose deficiencies in the abil-
- ity of the <EM>terminfo</EM> file to describe it or bugs in the
+ ity of the <EM>terminfo</EM> file to describe it or bugs in the
screen-handling code of the test program.
- To get the padding for insert line right (if the terminal
+ To get the padding for insert line right (if the terminal
manufacturer did not document it) a severe test is to edit
- a large file at 9600 baud, delete 16 or so lines from the
- middle of the screen, then hit the "u" key several times
- quickly. If the terminal messes up, more padding is usu-
- ally needed. A similar test can be used for insert char-
+ a large file at 9600 baud, delete 16 or so lines from the
+ middle of the screen, then hit the "u" key several times
+ quickly. If the terminal messes up, more padding is usu-
+ ally needed. A similar test can be used for insert char-
acter.
</PRE>
<H3><a name="h3-Basic-Capabilities">Basic Capabilities</a></H3><PRE>
- The number of columns on each line for the terminal is
- given by the <STRONG>cols</STRONG> numeric capability. If the terminal is
- a CRT, then the number of lines on the screen is given by
+ The number of columns on each line for the terminal is
+ given by the <STRONG>cols</STRONG> numeric capability. If the terminal is
+ a CRT, then the number of lines on the screen is given by
the <STRONG>lines</STRONG> capability. If the terminal wraps around to the
- beginning of the next line when it reaches the right mar-
+ beginning of the next line when it reaches the right mar-
gin, then it should have the <STRONG>am</STRONG> capability. If the termi-
- nal can clear its screen, leaving the cursor in the home
- position, then this is given by the <STRONG>clear</STRONG> string capabil-
- ity. If the terminal overstrikes (rather than clearing a
- position when a character is struck over) then it should
- have the <STRONG>os</STRONG> capability. If the terminal is a printing
- terminal, with no soft copy unit, give it both <STRONG>hc</STRONG> and <STRONG>os</STRONG>.
- (<STRONG>os</STRONG> applies to storage scope terminals, such as TEKTRONIX
- 4010 series, as well as hard copy and APL terminals.) If
+ nal can clear its screen, leaving the cursor in the home
+ position, then this is given by the <STRONG>clear</STRONG> string capabil-
+ ity. If the terminal overstrikes (rather than clearing a
+ position when a character is struck over) then it should
+ have the <STRONG>os</STRONG> capability. If the terminal is a printing
+ terminal, with no soft copy unit, give it both <STRONG>hc</STRONG> and <STRONG>os</STRONG>.
+ (<STRONG>os</STRONG> applies to storage scope terminals, such as TEKTRONIX
+ 4010 series, as well as hard copy and APL terminals.) If
there is a code to move the cursor to the left edge of the
current row, give this as <STRONG>cr</STRONG>. (Normally this will be car-
- riage return, control M.) If there is a code to produce
+ riage return, control M.) If there is a code to produce
an audible signal (bell, beep, etc) give this as <STRONG>bel</STRONG>.
- If there is a code to move the cursor one position to the
- left (such as backspace) that capability should be given
- as <STRONG>cub1</STRONG>. Similarly, codes to move to the right, up, and
+ If there is a code to move the cursor one position to the
+ left (such as backspace) that capability should be given
+ as <STRONG>cub1</STRONG>. Similarly, codes to move to the right, up, and
down should be given as <STRONG>cuf1</STRONG>, <STRONG>cuu1</STRONG>, and <STRONG>cud1</STRONG>. These local
- cursor motions should not alter the text they pass over,
- for example, you would not normally use "<STRONG>cuf1</STRONG>= " because
+ cursor motions should not alter the text they pass over,
+ for example, you would not normally use "<STRONG>cuf1</STRONG>= " because
the space would erase the character moved over.
- A very important point here is that the local cursor
- motions encoded in <EM>terminfo</EM> are undefined at the left and
- top edges of a CRT terminal. Programs should never
- attempt to backspace around the left edge, unless <STRONG>bw</STRONG> is
+ A very important point here is that the local cursor
+ motions encoded in <EM>terminfo</EM> are undefined at the left and
+ top edges of a CRT terminal. Programs should never
+ attempt to backspace around the left edge, unless <STRONG>bw</STRONG> is
given, and never attempt to go up locally off the top. In
- order to scroll text up, a program will go to the bottom
+ order to scroll text up, a program will go to the bottom
left corner of the screen and send the <STRONG>ind</STRONG> (index) string.
To scroll text down, a program goes to the top left corner
- of the screen and sends the <STRONG>ri</STRONG> (reverse index) string.
- The strings <STRONG>ind</STRONG> and <STRONG>ri</STRONG> are undefined when not on their
+ of the screen and sends the <STRONG>ri</STRONG> (reverse index) string.
+ The strings <STRONG>ind</STRONG> and <STRONG>ri</STRONG> are undefined when not on their
respective corners of the screen.
Parameterized versions of the scrolling sequences are <STRONG>indn</STRONG>
and <STRONG>rin</STRONG> which have the same semantics as <STRONG>ind</STRONG> and <STRONG>ri</STRONG> except
- that they take one parameter, and scroll that many lines.
- They are also undefined except at the appropriate edge of
+ that they take one parameter, and scroll that many lines.
+ They are also undefined except at the appropriate edge of
the screen.
- The <STRONG>am</STRONG> capability tells whether the cursor sticks at the
- right edge of the screen when text is output, but this
+ The <STRONG>am</STRONG> capability tells whether the cursor sticks at the
+ right edge of the screen when text is output, but this
does not necessarily apply to a <STRONG>cuf1</STRONG> from the last column.
- The only local motion which is defined from the left edge
- is if <STRONG>bw</STRONG> is given, then a <STRONG>cub1</STRONG> from the left edge will
- move to the right edge of the previous row. If <STRONG>bw</STRONG> is not
- given, the effect is undefined. This is useful for draw-
- ing a box around the edge of the screen, for example. If
- the terminal has switch selectable automatic margins, the
- <EM>terminfo</EM> file usually assumes that this is on; i.e., <STRONG>am</STRONG>.
- If the terminal has a command which moves to the first
- column of the next line, that command can be given as <STRONG>nel</STRONG>
- (newline). It does not matter if the command clears the
- remainder of the current line, so if the terminal has no
- <STRONG>cr</STRONG> and <STRONG>lf</STRONG> it may still be possible to craft a working <STRONG>nel</STRONG>
+ The only local motion which is defined from the left edge
+ is if <STRONG>bw</STRONG> is given, then a <STRONG>cub1</STRONG> from the left edge will
+ move to the right edge of the previous row. If <STRONG>bw</STRONG> is not
+ given, the effect is undefined. This is useful for draw-
+ ing a box around the edge of the screen, for example. If
+ the terminal has switch selectable automatic margins, the
+ <EM>terminfo</EM> file usually assumes that this is on; i.e., <STRONG>am</STRONG>.
+ If the terminal has a command which moves to the first
+ column of the next line, that command can be given as <STRONG>nel</STRONG>
+ (newline). It does not matter if the command clears the
+ remainder of the current line, so if the terminal has no
+ <STRONG>cr</STRONG> and <STRONG>lf</STRONG> it may still be possible to craft a working <STRONG>nel</STRONG>
out of one or both of them.
These capabilities suffice to describe hard-copy and
- "glass-tty" terminals. Thus the model 33 teletype is
+ "glass-tty" terminals. Thus the model 33 teletype is
described as
33|tty33|tty|model 33 teletype,
</PRE>
<H3><a name="h3-Parameterized-Strings">Parameterized Strings</a></H3><PRE>
- Cursor addressing and other strings requiring parameters
- in the terminal are described by a parameterized string
- capability, with <EM>printf</EM>-like escapes such as <EM>%x</EM> in it.
- For example, to address the cursor, the <STRONG>cup</STRONG> capability is
+ Cursor addressing and other strings requiring parameters
+ in the terminal are described by a parameterized string
+ capability, with <EM>printf</EM>-like escapes such as <EM>%x</EM> in it.
+ For example, to address the cursor, the <STRONG>cup</STRONG> capability is
given, using two parameters: the row and column to address
to. (Rows and columns are numbered from zero and refer to
the physical screen visible to the user, not to any unseen
- memory.) If the terminal has memory relative cursor
+ memory.) If the terminal has memory relative cursor
addressing, that can be indicated by <STRONG>mrcup</STRONG>.
- The parameter mechanism uses a stack and special <STRONG>%</STRONG> codes
- to manipulate it. Typically a sequence will push one of
- the parameters onto the stack and then print it in some
- format. Print (e.g., "%d") is a special case. Other
- operations, including "%t" pop their operand from the
+ The parameter mechanism uses a stack and special <STRONG>%</STRONG> codes
+ to manipulate it. Typically a sequence will push one of
+ the parameters onto the stack and then print it in some
+ format. Print (e.g., "%d") is a special case. Other
+ operations, including "%t" pop their operand from the
stack. It is noted that more complex operations are often
necessary, e.g., in the <STRONG>sgr</STRONG> string.
<STRONG>%%</STRONG> outputs "%"
<STRONG>%</STRONG><EM>[[</EM>:<EM>]flags][width[.precision]][</EM><STRONG>doxXs</STRONG><EM>]</EM>
- as in <STRONG>printf</STRONG>, flags are <EM>[-+#]</EM> and <EM>space</EM>. Use a ":"
- to allow the next character to be a "-" flag, avoid-
+ as in <STRONG>printf</STRONG>, flags are <EM>[-+#]</EM> and <EM>space</EM>. Use a ":"
+ to allow the next character to be a "-" flag, avoid-
ing interpreting "%-" as an operator.
%c print pop() like %c in <STRONG>printf</STRONG>
<STRONG>%g</STRONG><EM>[A-Z]</EM>
get static variable <EM>[a-z]</EM> and push it
- The terms "static" and "dynamic" are misleading.
- Historically, these are simply two different sets of
- variables, whose values are not reset between calls
- to <STRONG>tparm</STRONG>. However, that fact is not documented in
- other implementations. Relying on it will adversely
+ The terms "static" and "dynamic" are misleading.
+ Historically, these are simply two different sets of
+ variables, whose values are not reset between calls
+ to <STRONG>tparm</STRONG>. However, that fact is not documented in
+ other implementations. Relying on it will adversely
impact portability to other implementations.
<STRONG>%'</STRONG><EM>c</EM><STRONG>'</STRONG> char constant <EM>c</EM>
logical AND and OR operations (for conditionals)
<STRONG>%!</STRONG>, <STRONG>%~</STRONG>
- unary operations (logical and bit complement):
+ unary operations (logical and bit complement):
push(op pop())
<STRONG>%i</STRONG> add 1 to first two parameters (for ANSI terminals)
<STRONG>%?</STRONG> <EM>expr</EM> <STRONG>%t</STRONG> <EM>thenpart</EM> <STRONG>%e</STRONG> <EM>elsepart</EM> <STRONG>%;</STRONG>
- This forms an if-then-else. The <STRONG>%e</STRONG> <EM>elsepart</EM> is
- optional. Usually the <STRONG>%?</STRONG> <EM>expr</EM> part pushes a value
- onto the stack, and <STRONG>%t</STRONG> pops it from the stack, test-
- ing if it is nonzero (true). If it is zero (false),
+ This forms an if-then-else. The <STRONG>%e</STRONG> <EM>elsepart</EM> is
+ optional. Usually the <STRONG>%?</STRONG> <EM>expr</EM> part pushes a value
+ onto the stack, and <STRONG>%t</STRONG> pops it from the stack, test-
+ ing if it is nonzero (true). If it is zero (false),
control passes to the <STRONG>%e</STRONG> (else) part.
It is possible to form else-if's a la Algol 68:
where ci are conditions, bi are bodies.
Use the <STRONG>-f</STRONG> option of <STRONG>tic</STRONG> or <STRONG>infocmp</STRONG> to see the struc-
- ture of if-then-else's. Some strings, e.g., <STRONG>sgr</STRONG> can
+ ture of if-then-else's. Some strings, e.g., <STRONG>sgr</STRONG> can
be very complicated when written on one line. The <STRONG>-f</STRONG>
- option splits the string into lines with the parts
+ option splits the string into lines with the parts
indented.
Binary operations are in postfix form with the operands in
- the usual order. That is, to get x-5 one would use
- "%gx%{5}%-". <STRONG>%P</STRONG> and <STRONG>%g</STRONG> variables are persistent across
+ the usual order. That is, to get x-5 one would use
+ "%gx%{5}%-". <STRONG>%P</STRONG> and <STRONG>%g</STRONG> variables are persistent across
escape-string evaluations.
Consider the HP2645, which, to get to row 3 and column 12,
- needs to be sent \E&a12c03Y padded for 6 milliseconds.
- Note that the order of the rows and columns is inverted
- here, and that the row and column are printed as two dig-
+ needs to be sent \E&a12c03Y padded for 6 milliseconds.
+ Note that the order of the rows and columns is inverted
+ here, and that the row and column are printed as two dig-
its. Thus its <STRONG>cup</STRONG> capability is "cup=6\E&%p2%2dc%p1%2dY".
The Microterm ACT-IV needs the current row and column sent
- preceded by a <STRONG>^T</STRONG>, with the row and column simply encoded
- in binary, "cup=^T%p1%c%p2%c". Terminals which use "%c"
- need to be able to backspace the cursor (<STRONG>cub1</STRONG>), and to
+ preceded by a <STRONG>^T</STRONG>, with the row and column simply encoded
+ in binary, "cup=^T%p1%c%p2%c". Terminals which use "%c"
+ need to be able to backspace the cursor (<STRONG>cub1</STRONG>), and to
move the cursor up one line on the screen (<STRONG>cuu1</STRONG>). This is
- necessary because it is not always safe to transmit <STRONG>\n</STRONG> <STRONG>^D</STRONG>
- and <STRONG>\r</STRONG>, as the system may change or discard them. (The
- library routines dealing with terminfo set tty modes so
+ necessary because it is not always safe to transmit <STRONG>\n</STRONG> <STRONG>^D</STRONG>
+ and <STRONG>\r</STRONG>, as the system may change or discard them. (The
+ library routines dealing with terminfo set tty modes so
that tabs are never expanded, so \t is safe to send. This
turns out to be essential for the Ann Arbor 4080.)
A final example is the LSI ADM-3a, which uses row and col-
umn offset by a blank character, thus "cup=\E=%p1%'
- '%+%c%p2%' '%+%c". After sending "\E=", this pushes the
- first parameter, pushes the ASCII value for a space (32),
- adds them (pushing the sum on the stack in place of the
- two previous values) and outputs that value as a charac-
- ter. Then the same is done for the second parameter.
+ '%+%c%p2%' '%+%c". After sending "\E=", this pushes the
+ first parameter, pushes the ASCII value for a space (32),
+ adds them (pushing the sum on the stack in place of the
+ two previous values) and outputs that value as a charac-
+ ter. Then the same is done for the second parameter.
More complex arithmetic is possible using the stack.
</PRE>
<H3><a name="h3-Cursor-Motions">Cursor Motions</a></H3><PRE>
If the terminal has a fast way to home the cursor (to very
- upper left corner of screen) then this can be given as
- <STRONG>home</STRONG>; similarly a fast way of getting to the lower left-
- hand corner can be given as <STRONG>ll</STRONG>; this may involve going up
- with <STRONG>cuu1</STRONG> from the home position, but a program should
- never do this itself (unless <STRONG>ll</STRONG> does) because it can make
- no assumption about the effect of moving up from the home
- position. Note that the home position is the same as
+ upper left corner of screen) then this can be given as
+ <STRONG>home</STRONG>; similarly a fast way of getting to the lower left-
+ hand corner can be given as <STRONG>ll</STRONG>; this may involve going up
+ with <STRONG>cuu1</STRONG> from the home position, but a program should
+ never do this itself (unless <STRONG>ll</STRONG> does) because it can make
+ no assumption about the effect of moving up from the home
+ position. Note that the home position is the same as
addressing to (0,0): to the top left corner of the screen,
- not of memory. (Thus, the \EH sequence on HP terminals
+ not of memory. (Thus, the \EH sequence on HP terminals
cannot be used for <STRONG>home</STRONG>.)
If the terminal has row or column absolute cursor address-
- ing, these can be given as single parameter capabilities
+ ing, these can be given as single parameter capabilities
<STRONG>hpa</STRONG> (horizontal position absolute) and <STRONG>vpa</STRONG> (vertical posi-
tion absolute). Sometimes these are shorter than the more
- general two parameter sequence (as with the hp2645) and
+ general two parameter sequence (as with the hp2645) and
can be used in preference to <STRONG>cup</STRONG>. If there are parameter-
- ized local motions (e.g., move <EM>n</EM> spaces to the right)
+ ized local motions (e.g., move <EM>n</EM> spaces to the right)
these can be given as <STRONG>cud</STRONG>, <STRONG>cub</STRONG>, <STRONG>cuf</STRONG>, and <STRONG>cuu</STRONG> with a single
- parameter indicating how many spaces to move. These are
- primarily useful if the terminal does not have <STRONG>cup</STRONG>, such
+ parameter indicating how many spaces to move. These are
+ primarily useful if the terminal does not have <STRONG>cup</STRONG>, such
as the TEKTRONIX 4025.
If the terminal needs to be in a special mode when running
a program that uses these capabilities, the codes to enter
- and exit this mode can be given as <STRONG>smcup</STRONG> and <STRONG>rmcup</STRONG>. This
- arises, for example, from terminals like the Concept with
- more than one page of memory. If the terminal has only
- memory relative cursor addressing and not screen relative
+ and exit this mode can be given as <STRONG>smcup</STRONG> and <STRONG>rmcup</STRONG>. This
+ arises, for example, from terminals like the Concept with
+ more than one page of memory. If the terminal has only
+ memory relative cursor addressing and not screen relative
cursor addressing, a one screen-sized window must be fixed
- into the terminal for cursor addressing to work properly.
+ into the terminal for cursor addressing to work properly.
This is also used for the TEKTRONIX 4025, where <STRONG>smcup</STRONG> sets
- the command character to be the one used by terminfo. If
- the <STRONG>smcup</STRONG> sequence will not restore the screen after an
+ the command character to be the one used by terminfo. If
+ the <STRONG>smcup</STRONG> sequence will not restore the screen after an
<STRONG>rmcup</STRONG> sequence is output (to the state prior to outputting
<STRONG>rmcup</STRONG>), specify <STRONG>nrrmc</STRONG>.
</PRE>
<H3><a name="h3-Area-Clears">Area Clears</a></H3><PRE>
If the terminal can clear from the current position to the
- end of the line, leaving the cursor where it is, this
+ end of the line, leaving the cursor where it is, this
should be given as <STRONG>el</STRONG>. If the terminal can clear from the
- beginning of the line to the current position inclusive,
- leaving the cursor where it is, this should be given as
- <STRONG>el1</STRONG>. If the terminal can clear from the current position
- to the end of the display, then this should be given as
- <STRONG>ed</STRONG>. <STRONG>Ed</STRONG> is only defined from the first column of a line.
- (Thus, it can be simulated by a request to delete a large
+ beginning of the line to the current position inclusive,
+ leaving the cursor where it is, this should be given as
+ <STRONG>el1</STRONG>. If the terminal can clear from the current position
+ to the end of the display, then this should be given as
+ <STRONG>ed</STRONG>. <STRONG>Ed</STRONG> is only defined from the first column of a line.
+ (Thus, it can be simulated by a request to delete a large
number of lines, if a true <STRONG>ed</STRONG> is not available.)
</PRE>
<H3><a name="h3-Insert_delete-line-and-vertical-motions">Insert/delete line and vertical motions</a></H3><PRE>
- If the terminal can open a new blank line before the line
- where the cursor is, this should be given as <STRONG>il1</STRONG>; this is
- done only from the first position of a line. The cursor
+ If the terminal can open a new blank line before the line
+ where the cursor is, this should be given as <STRONG>il1</STRONG>; this is
+ done only from the first position of a line. The cursor
must then appear on the newly blank line. If the terminal
- can delete the line which the cursor is on, then this
- should be given as <STRONG>dl1</STRONG>; this is done only from the first
- position on the line to be deleted. Versions of <STRONG>il1</STRONG> and
- <STRONG>dl1</STRONG> which take a single parameter and insert or delete
+ can delete the line which the cursor is on, then this
+ should be given as <STRONG>dl1</STRONG>; this is done only from the first
+ position on the line to be deleted. Versions of <STRONG>il1</STRONG> and
+ <STRONG>dl1</STRONG> which take a single parameter and insert or delete
that many lines can be given as <STRONG>il</STRONG> and <STRONG>dl</STRONG>.
- If the terminal has a settable scrolling region (like the
- vt100) the command to set this can be described with the
- <STRONG>csr</STRONG> capability, which takes two parameters: the top and
+ If the terminal has a settable scrolling region (like the
+ vt100) the command to set this can be described with the
+ <STRONG>csr</STRONG> capability, which takes two parameters: the top and
bottom lines of the scrolling region. The cursor position
is, alas, undefined after using this command.
- It is possible to get the effect of insert or delete line
+ It is possible to get the effect of insert or delete line
using <STRONG>csr</STRONG> on a properly chosen region; the <STRONG>sc</STRONG> and <STRONG>rc</STRONG> (save
- and restore cursor) commands may be useful for ensuring
- that your synthesized insert/delete string does not move
- the cursor. (Note that the <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> library does this
- synthesis automatically, so you need not compose
+ and restore cursor) commands may be useful for ensuring
+ that your synthesized insert/delete string does not move
+ the cursor. (Note that the <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> library does this
+ synthesis automatically, so you need not compose
insert/delete strings for an entry with <STRONG>csr</STRONG>).
Yet another way to construct insert and delete might be to
- use a combination of index with the memory-lock feature
- found on some terminals (like the HP-700/90 series, which
+ use a combination of index with the memory-lock feature
+ found on some terminals (like the HP-700/90 series, which
however also has insert/delete).
- Inserting lines at the top or bottom of the screen can
- also be done using <STRONG>ri</STRONG> or <STRONG>ind</STRONG> on many terminals without a
- true insert/delete line, and is often faster even on ter-
+ Inserting lines at the top or bottom of the screen can
+ also be done using <STRONG>ri</STRONG> or <STRONG>ind</STRONG> on many terminals without a
+ true insert/delete line, and is often faster even on ter-
minals with those features.
- The boolean <STRONG>non_dest_scroll_region</STRONG> should be set if each
- scrolling window is effectively a view port on a screen-
- sized canvas. To test for this capability, create a
- scrolling region in the middle of the screen, write some-
- thing to the bottom line, move the cursor to the top of
+ The boolean <STRONG>non_dest_scroll_region</STRONG> should be set if each
+ scrolling window is effectively a view port on a screen-
+ sized canvas. To test for this capability, create a
+ scrolling region in the middle of the screen, write some-
+ thing to the bottom line, move the cursor to the top of
the region, and do <STRONG>ri</STRONG> followed by <STRONG>dl1</STRONG> or <STRONG>ind</STRONG>. If the data
- scrolled off the bottom of the region by the <STRONG>ri</STRONG> re-
- appears, then scrolling is non-destructive. System V and
- XSI Curses expect that <STRONG>ind</STRONG>, <STRONG>ri</STRONG>, <STRONG>indn</STRONG>, and <STRONG>rin</STRONG> will simu-
- late destructive scrolling; their documentation cautions
- you not to define <STRONG>csr</STRONG> unless this is true. This <STRONG>curses</STRONG>
+ scrolled off the bottom of the region by the <STRONG>ri</STRONG> re-
+ appears, then scrolling is non-destructive. System V and
+ XSI Curses expect that <STRONG>ind</STRONG>, <STRONG>ri</STRONG>, <STRONG>indn</STRONG>, and <STRONG>rin</STRONG> will simu-
+ late destructive scrolling; their documentation cautions
+ you not to define <STRONG>csr</STRONG> unless this is true. This <STRONG>curses</STRONG>
implementation is more liberal and will do explicit erases
after scrolling if <STRONG>ndstr</STRONG> is defined.
If the terminal has the ability to define a window as part
- of memory, which all commands affect, it should be given
+ of memory, which all commands affect, it should be given
as the parameterized string <STRONG>wind</STRONG>. The four parameters are
- the starting and ending lines in memory and the starting
+ the starting and ending lines in memory and the starting
and ending columns in memory, in that order.
- If the terminal can retain display memory above, then the
- <STRONG>da</STRONG> capability should be given; if display memory can be
- retained below, then <STRONG>db</STRONG> should be given. These indicate
- that deleting a line or scrolling may bring non-blank
- lines up from below or that scrolling back with <STRONG>ri</STRONG> may
+ If the terminal can retain display memory above, then the
+ <STRONG>da</STRONG> capability should be given; if display memory can be
+ retained below, then <STRONG>db</STRONG> should be given. These indicate
+ that deleting a line or scrolling may bring non-blank
+ lines up from below or that scrolling back with <STRONG>ri</STRONG> may
bring down non-blank lines.
</PRE>
<H3><a name="h3-Insert_Delete-Character">Insert/Delete Character</a></H3><PRE>
- There are two basic kinds of intelligent terminals with
- respect to insert/delete character which can be described
- using <EM>terminfo.</EM> The most common insert/delete character
- operations affect only the characters on the current line
- and shift characters off the end of the line rigidly.
- Other terminals, such as the Concept 100 and the Perkin
- Elmer Owl, make a distinction between typed and untyped
- blanks on the screen, shifting upon an insert or delete
- only to an untyped blank on the screen which is either
+ There are two basic kinds of intelligent terminals with
+ respect to insert/delete character which can be described
+ using <EM>terminfo.</EM> The most common insert/delete character
+ operations affect only the characters on the current line
+ and shift characters off the end of the line rigidly.
+ Other terminals, such as the Concept 100 and the Perkin
+ Elmer Owl, make a distinction between typed and untyped
+ blanks on the screen, shifting upon an insert or delete
+ only to an untyped blank on the screen which is either
eliminated, or expanded to two untyped blanks.
- You can determine the kind of terminal you have by clear-
- ing the screen and then typing text separated by cursor
- motions. Type "abc def" using local cursor motions
- (not spaces) between the "abc" and the "def". Then posi-
- tion the cursor before the "abc" and put the terminal in
- insert mode. If typing characters causes the rest of the
- line to shift rigidly and characters to fall off the end,
+ You can determine the kind of terminal you have by clear-
+ ing the screen and then typing text separated by cursor
+ motions. Type "abc def" using local cursor motions
+ (not spaces) between the "abc" and the "def". Then posi-
+ tion the cursor before the "abc" and put the terminal in
+ insert mode. If typing characters causes the rest of the
+ line to shift rigidly and characters to fall off the end,
then your terminal does not distinguish between blanks and
- untyped positions. If the "abc" shifts over to the "def"
- which then move together around the end of the current
- line and onto the next as you insert, you have the second
+ untyped positions. If the "abc" shifts over to the "def"
+ which then move together around the end of the current
+ line and onto the next as you insert, you have the second
type of terminal, and should give the capability <STRONG>in</STRONG>, which
stands for "insert null".
- While these are two logically separate attributes (one
- line versus multi-line insert mode, and special treatment
- of untyped spaces) we have seen no terminals whose insert
+ While these are two logically separate attributes (one
+ line versus multi-line insert mode, and special treatment
+ of untyped spaces) we have seen no terminals whose insert
mode cannot be described with the single attribute.
- Terminfo can describe both terminals which have an insert
+ Terminfo can describe both terminals which have an insert
mode, and terminals which send a simple sequence to open a
- blank position on the current line. Give as <STRONG>smir</STRONG> the
- sequence to get into insert mode. Give as <STRONG>rmir</STRONG> the
- sequence to leave insert mode. Now give as <STRONG>ich1</STRONG> any
+ blank position on the current line. Give as <STRONG>smir</STRONG> the
+ sequence to get into insert mode. Give as <STRONG>rmir</STRONG> the
+ sequence to leave insert mode. Now give as <STRONG>ich1</STRONG> any
sequence needed to be sent just before sending the charac-
- ter to be inserted. Most terminals with a true insert
- mode will not give <STRONG>ich1</STRONG>; terminals which send a sequence
+ ter to be inserted. Most terminals with a true insert
+ mode will not give <STRONG>ich1</STRONG>; terminals which send a sequence
to open a screen position should give it here.
- If your terminal has both, insert mode is usually prefer-
- able to <STRONG>ich1</STRONG>. Technically, you should not give both
- unless the terminal actually requires both to be used in
- combination. Accordingly, some non-curses applications
- get confused if both are present; the symptom is doubled
+ If your terminal has both, insert mode is usually prefer-
+ able to <STRONG>ich1</STRONG>. Technically, you should not give both
+ unless the terminal actually requires both to be used in
+ combination. Accordingly, some non-curses applications
+ get confused if both are present; the symptom is doubled
characters in an update using insert. This requirement is
now rare; most <STRONG>ich</STRONG> sequences do not require previous smir,
and most smir insert modes do not require <STRONG>ich1</STRONG> before each
- character. Therefore, the new <STRONG>curses</STRONG> actually assumes
- this is the case and uses either <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> or <STRONG>ich</STRONG>/<STRONG>ich1</STRONG> as
+ character. Therefore, the new <STRONG>curses</STRONG> actually assumes
+ this is the case and uses either <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> or <STRONG>ich</STRONG>/<STRONG>ich1</STRONG> as
appropriate (but not both). If you have to write an entry
- to be used under new curses for a terminal old enough to
+ to be used under new curses for a terminal old enough to
need both, include the <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> sequences in <STRONG>ich1</STRONG>.
If post insert padding is needed, give this as a number of
- milliseconds in <STRONG>ip</STRONG> (a string option). Any other sequence
- which may need to be sent after an insert of a single
+ milliseconds in <STRONG>ip</STRONG> (a string option). Any other sequence
+ which may need to be sent after an insert of a single
character may also be given in <STRONG>ip</STRONG>. If your terminal needs
both to be placed into an "insert mode" and a special code
- to precede each inserted character, then both <STRONG>smir</STRONG>/<STRONG>rmir</STRONG>
- and <STRONG>ich1</STRONG> can be given, and both will be used. The <STRONG>ich</STRONG>
+ to precede each inserted character, then both <STRONG>smir</STRONG>/<STRONG>rmir</STRONG>
+ and <STRONG>ich1</STRONG> can be given, and both will be used. The <STRONG>ich</STRONG>
capability, with one parameter, <EM>n</EM>, will repeat the effects
of <STRONG>ich1</STRONG> <EM>n</EM> times.
in insert mode, give this as a number of milliseconds pad-
ding in <STRONG>rmp</STRONG>.
- It is occasionally necessary to move around while in
- insert mode to delete characters on the same line (e.g.,
- if there is a tab after the insertion position). If your
- terminal allows motion while in insert mode you can give
- the capability <STRONG>mir</STRONG> to speed up inserting in this case.
- Omitting <STRONG>mir</STRONG> will affect only speed. Some terminals
+ It is occasionally necessary to move around while in
+ insert mode to delete characters on the same line (e.g.,
+ if there is a tab after the insertion position). If your
+ terminal allows motion while in insert mode you can give
+ the capability <STRONG>mir</STRONG> to speed up inserting in this case.
+ Omitting <STRONG>mir</STRONG> will affect only speed. Some terminals
(notably Datamedia's) must not have <STRONG>mir</STRONG> because of the way
their insert mode works.
- Finally, you can specify <STRONG>dch1</STRONG> to delete a single charac-
- ter, <STRONG>dch</STRONG> with one parameter, <EM>n</EM>, to delete <EM>n</EM> <EM>characters,</EM>
- and delete mode by giving <STRONG>smdc</STRONG> and <STRONG>rmdc</STRONG> to enter and exit
- delete mode (any mode the terminal needs to be placed in
+ Finally, you can specify <STRONG>dch1</STRONG> to delete a single charac-
+ ter, <STRONG>dch</STRONG> with one parameter, <EM>n</EM>, to delete <EM>n</EM> <EM>characters,</EM>
+ and delete mode by giving <STRONG>smdc</STRONG> and <STRONG>rmdc</STRONG> to enter and exit
+ delete mode (any mode the terminal needs to be placed in
for <STRONG>dch1</STRONG> to work).
- A command to erase <EM>n</EM> characters (equivalent to outputting
- <EM>n</EM> blanks without moving the cursor) can be given as <STRONG>ech</STRONG>
+ A command to erase <EM>n</EM> characters (equivalent to outputting
+ <EM>n</EM> blanks without moving the cursor) can be given as <STRONG>ech</STRONG>
with one parameter.
</PRE>
<H3><a name="h3-Highlighting_-Underlining_-and-Visible-Bells">Highlighting, Underlining, and Visible Bells</a></H3><PRE>
If your terminal has one or more kinds of display
- attributes, these can be represented in a number of dif-
+ attributes, these can be represented in a number of dif-
ferent ways. You should choose one display form as <EM>stand-</EM>
<EM>out</EM> <EM>mode</EM>, representing a good, high contrast, easy-on-the-
- eyes, format for highlighting error messages and other
- attention getters. (If you have a choice, reverse video
- plus half-bright is good, or reverse video alone.) The
- sequences to enter and exit standout mode are given as
- <STRONG>smso</STRONG> and <STRONG>rmso</STRONG>, respectively. If the code to change into
- or out of standout mode leaves one or even two blank spa-
- ces on the screen, as the TVI 912 and Teleray 1061 do,
+ eyes, format for highlighting error messages and other
+ attention getters. (If you have a choice, reverse video
+ plus half-bright is good, or reverse video alone.) The
+ sequences to enter and exit standout mode are given as
+ <STRONG>smso</STRONG> and <STRONG>rmso</STRONG>, respectively. If the code to change into
+ or out of standout mode leaves one or even two blank spa-
+ ces on the screen, as the TVI 912 and Teleray 1061 do,
then <STRONG>xmc</STRONG> should be given to tell how many spaces are left.
- Codes to begin underlining and end underlining can be
- given as <STRONG>smul</STRONG> and <STRONG>rmul</STRONG> respectively. If the terminal has
- a code to underline the current character and move the
+ Codes to begin underlining and end underlining can be
+ given as <STRONG>smul</STRONG> and <STRONG>rmul</STRONG> respectively. If the terminal has
+ a code to underline the current character and move the
cursor one space to the right, such as the Microterm Mime,
this can be given as <STRONG>uc</STRONG>.
- Other capabilities to enter various highlighting modes
- include <STRONG>blink</STRONG> (blinking) <STRONG>bold</STRONG> (bold or extra bright) <STRONG>dim</STRONG>
- (dim or half-bright) <STRONG>invis</STRONG> (blanking or invisible text)
- <STRONG>prot</STRONG> (protected) <STRONG>rev</STRONG> (reverse video) <STRONG>sgr0</STRONG> (turn off <EM>all</EM>
- attribute modes) <STRONG>smacs</STRONG> (enter alternate character set
- mode) and <STRONG>rmacs</STRONG> (exit alternate character set mode).
- Turning on any of these modes singly may or may not turn
+ Other capabilities to enter various highlighting modes
+ include <STRONG>blink</STRONG> (blinking) <STRONG>bold</STRONG> (bold or extra bright) <STRONG>dim</STRONG>
+ (dim or half-bright) <STRONG>invis</STRONG> (blanking or invisible text)
+ <STRONG>prot</STRONG> (protected) <STRONG>rev</STRONG> (reverse video) <STRONG>sgr0</STRONG> (turn off <EM>all</EM>
+ attribute modes) <STRONG>smacs</STRONG> (enter alternate character set
+ mode) and <STRONG>rmacs</STRONG> (exit alternate character set mode).
+ Turning on any of these modes singly may or may not turn
off other modes.
- If there is a sequence to set arbitrary combinations of
- modes, this should be given as <STRONG>sgr</STRONG> (set attributes), tak-
- ing 9 parameters. Each parameter is either 0 or nonzero,
+ If there is a sequence to set arbitrary combinations of
+ modes, this should be given as <STRONG>sgr</STRONG> (set attributes), tak-
+ ing 9 parameters. Each parameter is either 0 or nonzero,
as the corresponding attribute is on or off. The 9 param-
- eters are, in order: standout, underline, reverse, blink,
- dim, bold, blank, protect, alternate character set. Not
- all modes need be supported by <STRONG>sgr</STRONG>, only those for which
+ eters are, in order: standout, underline, reverse, blink,
+ dim, bold, blank, protect, alternate character set. Not
+ all modes need be supported by <STRONG>sgr</STRONG>, only those for which
corresponding separate attribute commands exist.
For example, the DEC vt220 supports most of the modes:
p8 protect not used
p9 altcharset ^O (off) ^N (on)
- We begin each escape sequence by turning off any existing
- modes, since there is no quick way to determine whether
+ We begin each escape sequence by turning off any existing
+ modes, since there is no quick way to determine whether
they are active. Standout is set up to be the combination
- of reverse and bold. The vt220 terminal has a protect
- mode, though it is not commonly used in sgr because it
- protects characters on the screen from the host's era-
- sures. The altcharset mode also is different in that it
- is either ^O or ^N, depending on whether it is off or on.
- If all modes are turned on, the resulting sequence is
+ of reverse and bold. The vt220 terminal has a protect
+ mode, though it is not commonly used in sgr because it
+ protects characters on the screen from the host's era-
+ sures. The altcharset mode also is different in that it
+ is either ^O or ^N, depending on whether it is off or on.
+ If all modes are turned on, the resulting sequence is
\E[0;1;4;5;7;8m^N.
- Some sequences are common to different modes. For exam-
- ple, ;7 is output when either p1 or p3 is true, that is,
+ Some sequences are common to different modes. For exam-
+ ple, ;7 is output when either p1 or p3 is true, that is,
if either standout or reverse modes are turned on.
- Writing out the above sequences, along with their depen-
+ Writing out the above sequences, along with their depen-
dencies yields
<STRONG>sequence</STRONG> <STRONG>when</STRONG> <STRONG>to</STRONG> <STRONG>output</STRONG> <STRONG>terminfo</STRONG> <STRONG>translation</STRONG>
sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p4%t;5%;
%?%p1%p3%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- Remember that if you specify sgr, you must also specify
- sgr0. Also, some implementations rely on sgr being given
- if sgr0 is, Not all terminfo entries necessarily have an
- sgr string, however. Many terminfo entries are derived
- from termcap entries which have no sgr string. The only
- drawback to adding an sgr string is that termcap also
- assumes that sgr0 does not exit alternate character set
+ Remember that if you specify sgr, you must also specify
+ sgr0. Also, some implementations rely on sgr being given
+ if sgr0 is, Not all terminfo entries necessarily have an
+ sgr string, however. Many terminfo entries are derived
+ from termcap entries which have no sgr string. The only
+ drawback to adding an sgr string is that termcap also
+ assumes that sgr0 does not exit alternate character set
mode.
- Terminals with the "magic cookie" glitch (<STRONG>xmc</STRONG>) deposit
+ Terminals with the "magic cookie" glitch (<STRONG>xmc</STRONG>) deposit
special "cookies" when they receive mode-setting
- sequences, which affect the display algorithm rather than
- having extra bits for each character. Some terminals,
- such as the HP 2621, automatically leave standout mode
- when they move to a new line or the cursor is addressed.
- Programs using standout mode should exit standout mode
- before moving the cursor or sending a newline, unless the
- <STRONG>msgr</STRONG> capability, asserting that it is safe to move in
+ sequences, which affect the display algorithm rather than
+ having extra bits for each character. Some terminals,
+ such as the HP 2621, automatically leave standout mode
+ when they move to a new line or the cursor is addressed.
+ Programs using standout mode should exit standout mode
+ before moving the cursor or sending a newline, unless the
+ <STRONG>msgr</STRONG> capability, asserting that it is safe to move in
standout mode, is present.
- If the terminal has a way of flashing the screen to indi-
- cate an error quietly (a bell replacement) then this can
+ If the terminal has a way of flashing the screen to indi-
+ cate an error quietly (a bell replacement) then this can
be given as <STRONG>flash</STRONG>; it must not move the cursor.
- If the cursor needs to be made more visible than normal
+ If the cursor needs to be made more visible than normal
when it is not on the bottom line (to make, for example, a
- non-blinking underline into an easier to find block or
+ non-blinking underline into an easier to find block or
blinking underline) give this sequence as <STRONG>cvvis</STRONG>. If there
- is a way to make the cursor completely invisible, give
+ is a way to make the cursor completely invisible, give
that as <STRONG>civis</STRONG>. The capability <STRONG>cnorm</STRONG> should be given which
undoes the effects of both of these modes.
If your terminal correctly generates underlined characters
- (with no special codes needed) even though it does not
- overstrike, then you should give the capability <STRONG>ul</STRONG>. If a
- character overstriking another leaves both characters on
+ (with no special codes needed) even though it does not
+ overstrike, then you should give the capability <STRONG>ul</STRONG>. If a
+ character overstriking another leaves both characters on
the screen, specify the capability <STRONG>os</STRONG>. If overstrikes are
- erasable with a blank, then this should be indicated by
+ erasable with a blank, then this should be indicated by
giving <STRONG>eo</STRONG>.
</PRE>
<H3><a name="h3-Keypad-and-Function-Keys">Keypad and Function Keys</a></H3><PRE>
If the terminal has a keypad that transmits codes when the
- keys are pressed, this information can be given. Note
+ keys are pressed, this information can be given. Note
that it is not possible to handle terminals where the key-
pad only works in local (this applies, for example, to the
- unshifted HP 2621 keys). If the keypad can be set to
- transmit or not transmit, give these codes as <STRONG>smkx</STRONG> and
+ unshifted HP 2621 keys). If the keypad can be set to
+ transmit or not transmit, give these codes as <STRONG>smkx</STRONG> and
<STRONG>rmkx</STRONG>. Otherwise the keypad is assumed to always transmit.
- The codes sent by the left arrow, right arrow, up arrow,
- down arrow, and home keys can be given as <STRONG>kcub1,</STRONG> <STRONG>kcuf1,</STRONG>
- <STRONG>kcuu1,</STRONG> <STRONG>kcud1,</STRONG> and <STRONG>khome</STRONG> respectively. If there are func-
- tion keys such as f0, f1, ..., f10, the codes they send
- can be given as <STRONG>kf0,</STRONG> <STRONG>kf1,</STRONG> <STRONG>...,</STRONG> <STRONG>kf10</STRONG>. If these keys have
- labels other than the default f0 through f10, the labels
+ The codes sent by the left arrow, right arrow, up arrow,
+ down arrow, and home keys can be given as <STRONG>kcub1,</STRONG> <STRONG>kcuf1,</STRONG>
+ <STRONG>kcuu1,</STRONG> <STRONG>kcud1,</STRONG> and <STRONG>khome</STRONG> respectively. If there are func-
+ tion keys such as f0, f1, ..., f10, the codes they send
+ can be given as <STRONG>kf0,</STRONG> <STRONG>kf1,</STRONG> <STRONG>...,</STRONG> <STRONG>kf10</STRONG>. If these keys have
+ labels other than the default f0 through f10, the labels
can be given as <STRONG>lf0,</STRONG> <STRONG>lf1,</STRONG> <STRONG>...,</STRONG> <STRONG>lf10</STRONG>.
The codes transmitted by certain other special keys can be
<STRONG>o</STRONG> <STRONG>khts</STRONG> (set a tab stop in this column).
- In addition, if the keypad has a 3 by 3 array of keys
- including the four arrow keys, the other five keys can be
+ In addition, if the keypad has a 3 by 3 array of keys
+ including the four arrow keys, the other five keys can be
given as <STRONG>ka1</STRONG>, <STRONG>ka3</STRONG>, <STRONG>kb2</STRONG>, <STRONG>kc1</STRONG>, and <STRONG>kc3</STRONG>. These keys are use-
- ful when the effects of a 3 by 3 directional pad are
+ ful when the effects of a 3 by 3 directional pad are
needed.
- Strings to program function keys can be given as <STRONG>pfkey</STRONG>,
- <STRONG>pfloc</STRONG>, and <STRONG>pfx</STRONG>. A string to program screen labels should
- be specified as <STRONG>pln</STRONG>. Each of these strings takes two
- parameters: the function key number to program (from 0 to
- 10) and the string to program it with. Function key num-
- bers out of this range may program undefined keys in a
- terminal dependent manner. The difference between the
- capabilities is that <STRONG>pfkey</STRONG> causes pressing the given key
- to be the same as the user typing the given string; <STRONG>pfloc</STRONG>
+ Strings to program function keys can be given as <STRONG>pfkey</STRONG>,
+ <STRONG>pfloc</STRONG>, and <STRONG>pfx</STRONG>. A string to program screen labels should
+ be specified as <STRONG>pln</STRONG>. Each of these strings takes two
+ parameters: the function key number to program (from 0 to
+ 10) and the string to program it with. Function key num-
+ bers out of this range may program undefined keys in a
+ terminal dependent manner. The difference between the
+ capabilities is that <STRONG>pfkey</STRONG> causes pressing the given key
+ to be the same as the user typing the given string; <STRONG>pfloc</STRONG>
causes the string to be executed by the terminal in local;
- and <STRONG>pfx</STRONG> causes the string to be transmitted to the com-
+ and <STRONG>pfx</STRONG> causes the string to be transmitted to the com-
puter.
The capabilities <STRONG>nlab</STRONG>, <STRONG>lw</STRONG> and <STRONG>lh</STRONG> define the number of pro-
- grammable screen labels and their width and height. If
- there are commands to turn the labels on and off, give
- them in <STRONG>smln</STRONG> and <STRONG>rmln</STRONG>. <STRONG>smln</STRONG> is normally output after one
+ grammable screen labels and their width and height. If
+ there are commands to turn the labels on and off, give
+ them in <STRONG>smln</STRONG> and <STRONG>rmln</STRONG>. <STRONG>smln</STRONG> is normally output after one
or more pln sequences to make sure that the change becomes
visible.
</PRE>
<H3><a name="h3-Tabs-and-Initialization">Tabs and Initialization</a></H3><PRE>
- If the terminal has hardware tabs, the command to advance
- to the next tab stop can be given as <STRONG>ht</STRONG> (usually control
+ If the terminal has hardware tabs, the command to advance
+ to the next tab stop can be given as <STRONG>ht</STRONG> (usually control
I). A "back-tab" command which moves leftward to the pre-
- ceding tab stop can be given as <STRONG>cbt</STRONG>. By convention, if
- the teletype modes indicate that tabs are being expanded
- by the computer rather than being sent to the terminal,
- programs should not use <STRONG>ht</STRONG> or <STRONG>cbt</STRONG> even if they are
- present, since the user may not have the tab stops prop-
- erly set. If the terminal has hardware tabs which are
- initially set every <EM>n</EM> spaces when the terminal is powered
- up, the numeric parameter <STRONG>it</STRONG> is given, showing the number
- of spaces the tabs are set to. This is normally used by
- the <EM>tset</EM> command to determine whether to set the mode for
- hardware tab expansion, and whether to set the tab stops.
- If the terminal has tab stops that can be saved in non-
- volatile memory, the terminfo description can assume that
+ ceding tab stop can be given as <STRONG>cbt</STRONG>. By convention, if
+ the teletype modes indicate that tabs are being expanded
+ by the computer rather than being sent to the terminal,
+ programs should not use <STRONG>ht</STRONG> or <STRONG>cbt</STRONG> even if they are
+ present, since the user may not have the tab stops prop-
+ erly set. If the terminal has hardware tabs which are
+ initially set every <EM>n</EM> spaces when the terminal is powered
+ up, the numeric parameter <STRONG>it</STRONG> is given, showing the number
+ of spaces the tabs are set to. This is normally used by
+ the <EM>tset</EM> command to determine whether to set the mode for
+ hardware tab expansion, and whether to set the tab stops.
+ If the terminal has tab stops that can be saved in non-
+ volatile memory, the terminfo description can assume that
they are properly set.
- Other capabilities include <STRONG>is1</STRONG>, <STRONG>is2</STRONG>, and <STRONG>is3</STRONG>, initializa-
- tion strings for the terminal, <STRONG>iprog</STRONG>, the path name of a
- program to be run to initialize the terminal, and <STRONG>if</STRONG>, the
- name of a file containing long initialization strings.
- These strings are expected to set the terminal into modes
- consistent with the rest of the terminfo description.
+ Other capabilities include <STRONG>is1</STRONG>, <STRONG>is2</STRONG>, and <STRONG>is3</STRONG>, initializa-
+ tion strings for the terminal, <STRONG>iprog</STRONG>, the path name of a
+ program to be run to initialize the terminal, and <STRONG>if</STRONG>, the
+ name of a file containing long initialization strings.
+ These strings are expected to set the terminal into modes
+ consistent with the rest of the terminfo description.
They are normally sent to the terminal, by the <EM>init</EM> option
- of the <EM>tput</EM> program, each time the user logs in. They
+ of the <EM>tput</EM> program, each time the user logs in. They
will be printed in the following order:
run the program
and finally
output <STRONG>is3</STRONG>.
- Most initialization is done with <STRONG>is2</STRONG>. Special terminal
+ Most initialization is done with <STRONG>is2</STRONG>. Special terminal
modes can be set up without duplicating strings by putting
- the common sequences in <STRONG>is2</STRONG> and special cases in <STRONG>is1</STRONG> and
+ the common sequences in <STRONG>is2</STRONG> and special cases in <STRONG>is1</STRONG> and
<STRONG>is3</STRONG>.
A set of sequences that does a harder reset from a totally
unknown state can be given as <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rf</STRONG> and <STRONG>rs3</STRONG>, analo-
- gous to <STRONG>is1</STRONG> <STRONG>,</STRONG> <STRONG>is2</STRONG> <STRONG>,</STRONG> <STRONG>if</STRONG> and <STRONG>is3</STRONG> respectively. These
- strings are output by the <EM>reset</EM> program, which is used
- when the terminal gets into a wedged state. Commands are
- normally placed in <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG> <STRONG>rs3</STRONG> and <STRONG>rf</STRONG> only if they pro-
- duce annoying effects on the screen and are not necessary
- when logging in. For example, the command to set the
- vt100 into 80-column mode would normally be part of <STRONG>is2</STRONG>,
- but it causes an annoying glitch of the screen and is not
- normally needed since the terminal is usually already in
+ gous to <STRONG>is1</STRONG> <STRONG>,</STRONG> <STRONG>is2</STRONG> <STRONG>,</STRONG> <STRONG>if</STRONG> and <STRONG>is3</STRONG> respectively. These
+ strings are output by the <EM>reset</EM> program, which is used
+ when the terminal gets into a wedged state. Commands are
+ normally placed in <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG> <STRONG>rs3</STRONG> and <STRONG>rf</STRONG> only if they pro-
+ duce annoying effects on the screen and are not necessary
+ when logging in. For example, the command to set the
+ vt100 into 80-column mode would normally be part of <STRONG>is2</STRONG>,
+ but it causes an annoying glitch of the screen and is not
+ normally needed since the terminal is usually already in
80 column mode.
The <EM>reset</EM> program writes strings including <STRONG>iprog</STRONG>, etc., in
- the same order as the <EM>init</EM> program, using <STRONG>rs1</STRONG>, etc.,
+ the same order as the <EM>init</EM> program, using <STRONG>rs1</STRONG>, etc.,
instead of <STRONG>is1</STRONG>, etc. If any of <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>, or <STRONG>rf</STRONG> reset
- capability strings are missing, the <EM>reset</EM> program falls
+ capability strings are missing, the <EM>reset</EM> program falls
back upon the corresponding initialization capability
string.
If there are commands to set and clear tab stops, they can
- be given as <STRONG>tbc</STRONG> (clear all tab stops) and <STRONG>hts</STRONG> (set a tab
- stop in the current column of every row). If a more com-
- plex sequence is needed to set the tabs than can be
- described by this, the sequence can be placed in <STRONG>is2</STRONG> or
+ be given as <STRONG>tbc</STRONG> (clear all tab stops) and <STRONG>hts</STRONG> (set a tab
+ stop in the current column of every row). If a more com-
+ plex sequence is needed to set the tabs than can be
+ described by this, the sequence can be placed in <STRONG>is2</STRONG> or
<STRONG>if</STRONG>.
</PRE>
<H3><a name="h3-Delays-and-Padding">Delays and Padding</a></H3><PRE>
- Many older and slower terminals do not support either
+ Many older and slower terminals do not support either
XON/XOFF or DTR handshaking, including hard copy terminals
- and some very archaic CRTs (including, for example, DEC
- VT100s). These may require padding characters after cer-
+ and some very archaic CRTs (including, for example, DEC
+ VT100s). These may require padding characters after cer-
tain cursor motions and screen changes.
If the terminal uses xon/xoff handshaking for flow control
- (that is, it automatically emits ^S back to the host when
+ (that is, it automatically emits ^S back to the host when
its input buffers are close to full), set <STRONG>xon</STRONG>. This capa-
- bility suppresses the emission of padding. You can also
- set it for memory-mapped console devices effectively that
- do not have a speed limit. Padding information should
- still be included so that routines can make better deci-
+ bility suppresses the emission of padding. You can also
+ set it for memory-mapped console devices effectively that
+ do not have a speed limit. Padding information should
+ still be included so that routines can make better deci-
sions about relative costs, but actual pad characters will
not be transmitted.
- If <STRONG>pb</STRONG> (padding baud rate) is given, padding is suppressed
- at baud rates below the value of <STRONG>pb</STRONG>. If the entry has no
- padding baud rate, then whether padding is emitted or not
+ If <STRONG>pb</STRONG> (padding baud rate) is given, padding is suppressed
+ at baud rates below the value of <STRONG>pb</STRONG>. If the entry has no
+ padding baud rate, then whether padding is emitted or not
is completely controlled by <STRONG>xon</STRONG>.
- If the terminal requires other than a null (zero) charac-
- ter as a pad, then this can be given as <STRONG>pad</STRONG>. Only the
+ If the terminal requires other than a null (zero) charac-
+ ter as a pad, then this can be given as <STRONG>pad</STRONG>. Only the
first character of the <STRONG>pad</STRONG> string is used.
</PRE>
<H3><a name="h3-Status-Lines">Status Lines</a></H3><PRE>
- Some terminals have an extra "status line" which is not
- normally used by software (and thus not counted in the
+ Some terminals have an extra "status line" which is not
+ normally used by software (and thus not counted in the
terminal's <STRONG>lines</STRONG> capability).
- The simplest case is a status line which is cursor-
- addressable but not part of the main scrolling region on
- the screen; the Heathkit H19 has a status line of this
- kind, as would a 24-line VT100 with a 23-line scrolling
- region set up on initialization. This situation is indi-
+ The simplest case is a status line which is cursor-
+ addressable but not part of the main scrolling region on
+ the screen; the Heathkit H19 has a status line of this
+ kind, as would a 24-line VT100 with a 23-line scrolling
+ region set up on initialization. This situation is indi-
cated by the <STRONG>hs</STRONG> capability.
Some terminals with status lines need special sequences to
- access the status line. These may be expressed as a
+ access the status line. These may be expressed as a
string with single parameter <STRONG>tsl</STRONG> which takes the cursor to
- a given zero-origin column on the status line. The capa-
+ a given zero-origin column on the status line. The capa-
bility <STRONG>fsl</STRONG> must return to the main-screen cursor positions
- before the last <STRONG>tsl</STRONG>. You may need to embed the string
- values of <STRONG>sc</STRONG> (save cursor) and <STRONG>rc</STRONG> (restore cursor) in <STRONG>tsl</STRONG>
+ before the last <STRONG>tsl</STRONG>. You may need to embed the string
+ values of <STRONG>sc</STRONG> (save cursor) and <STRONG>rc</STRONG> (restore cursor) in <STRONG>tsl</STRONG>
and <STRONG>fsl</STRONG> to accomplish this.
- The status line is normally assumed to be the same width
- as the width of the terminal. If this is untrue, you can
+ The status line is normally assumed to be the same width
+ as the width of the terminal. If this is untrue, you can
specify it with the numeric capability <STRONG>wsl</STRONG>.
- A command to erase or blank the status line may be speci-
+ A command to erase or blank the status line may be speci-
fied as <STRONG>dsl</STRONG>.
- The boolean capability <STRONG>eslok</STRONG> specifies that escape
+ The boolean capability <STRONG>eslok</STRONG> specifies that escape
sequences, tabs, etc., work ordinarily in the status line.
- The <STRONG>ncurses</STRONG> implementation does not yet use any of these
- capabilities. They are documented here in case they ever
+ The <STRONG>ncurses</STRONG> implementation does not yet use any of these
+ capabilities. They are documented here in case they ever
become important.
</PRE>
<H3><a name="h3-Line-Graphics">Line Graphics</a></H3><PRE>
- Many terminals have alternate character sets useful for
- forms-drawing. Terminfo and <STRONG>curses</STRONG> build in support for
- the drawing characters supported by the VT100, with some
- characters from the AT&T 4410v1 added. This alternate
+ Many terminals have alternate character sets useful for
+ forms-drawing. Terminfo and <STRONG>curses</STRONG> build in support for
+ the drawing characters supported by the VT100, with some
+ characters from the AT&T 4410v1 added. This alternate
character set may be specified by the <STRONG>acsc</STRONG> capability.
<STRONG>Glyph</STRONG> <STRONG>ACS</STRONG> <STRONG>Ascii</STRONG> <STRONG>VT100</STRONG>
upper right corner ACS_URCORNER + k
vertical line ACS_VLINE | x
- The best way to define a new device's graphics set is to
- add a column to a copy of this table for your terminal,
- giving the character which (when emitted between
- <STRONG>smacs</STRONG>/<STRONG>rmacs</STRONG> switches) will be rendered as the correspond-
- ing graphic. Then read off the VT100/your terminal char-
- acter pairs right to left in sequence; these become the
+ The best way to define a new device's graphics set is to
+ add a column to a copy of this table for your terminal,
+ giving the character which (when emitted between
+ <STRONG>smacs</STRONG>/<STRONG>rmacs</STRONG> switches) will be rendered as the correspond-
+ ing graphic. Then read off the VT100/your terminal char-
+ acter pairs right to left in sequence; these become the
ACSC string.
</PRE>
<H3><a name="h3-Color-Handling">Color Handling</a></H3><PRE>
- Most color terminals are either "Tektronix-like" or "HP-
- like". Tektronix-like terminals have a predefined set of
- N colors (where N usually 8), and can set character-cell
+ Most color terminals are either "Tektronix-like" or "HP-
+ like". Tektronix-like terminals have a predefined set of
+ N colors (where N usually 8), and can set character-cell
foreground and background characters independently, mixing
- them into N * N color-pairs. On HP-like terminals, the
+ them into N * N color-pairs. On HP-like terminals, the
use must set each color pair up separately (foreground and
- background are not independently settable). Up to M
- color-pairs may be set up from 2*M different colors.
+ background are not independently settable). Up to M
+ color-pairs may be set up from 2*M different colors.
ANSI-compatible terminals are Tektronix-like.
Some basic color capabilities are independent of the color
method. The numeric capabilities <STRONG>colors</STRONG> and <STRONG>pairs</STRONG> specify
- the maximum numbers of colors and color-pairs that can be
- displayed simultaneously. The <STRONG>op</STRONG> (original pair) string
- resets foreground and background colors to their default
- values for the terminal. The <STRONG>oc</STRONG> string resets all colors
- or color-pairs to their default values for the terminal.
- Some terminals (including many PC terminal emulators)
- erase screen areas with the current background color
- rather than the power-up default background; these should
+ the maximum numbers of colors and color-pairs that can be
+ displayed simultaneously. The <STRONG>op</STRONG> (original pair) string
+ resets foreground and background colors to their default
+ values for the terminal. The <STRONG>oc</STRONG> string resets all colors
+ or color-pairs to their default values for the terminal.
+ Some terminals (including many PC terminal emulators)
+ erase screen areas with the current background color
+ rather than the power-up default background; these should
have the boolean capability <STRONG>bce</STRONG>.
- To change the current foreground or background color on a
- Tektronix-type terminal, use <STRONG>setaf</STRONG> (set ANSI foreground)
- and <STRONG>setab</STRONG> (set ANSI background) or <STRONG>setf</STRONG> (set foreground)
- and <STRONG>setb</STRONG> (set background). These take one parameter, the
+ To change the current foreground or background color on a
+ Tektronix-type terminal, use <STRONG>setaf</STRONG> (set ANSI foreground)
+ and <STRONG>setab</STRONG> (set ANSI background) or <STRONG>setf</STRONG> (set foreground)
+ and <STRONG>setb</STRONG> (set background). These take one parameter, the
color number. The SVr4 documentation describes only
- <STRONG>setaf</STRONG>/<STRONG>setab</STRONG>; the XPG4 draft says that "If the terminal
+ <STRONG>setaf</STRONG>/<STRONG>setab</STRONG>; the XPG4 draft says that "If the terminal
supports ANSI escape sequences to set background and fore-
- ground, they should be coded as <STRONG>setaf</STRONG> and <STRONG>setab</STRONG>, respec-
- tively. If the terminal supports other escape sequences
- to set background and foreground, they should be coded as
- <STRONG>setf</STRONG> and <STRONG>setb</STRONG>, respectively. The <EM>vidputs()</EM> function and
- the refresh functions use <STRONG>setaf</STRONG> and <STRONG>setab</STRONG> if they are
+ ground, they should be coded as <STRONG>setaf</STRONG> and <STRONG>setab</STRONG>, respec-
+ tively. If the terminal supports other escape sequences
+ to set background and foreground, they should be coded as
+ <STRONG>setf</STRONG> and <STRONG>setb</STRONG>, respectively. The <EM>vidputs()</EM> function and
+ the refresh functions use <STRONG>setaf</STRONG> and <STRONG>setab</STRONG> if they are
defined."
- The <STRONG>setaf</STRONG>/<STRONG>setab</STRONG> and <STRONG>setf</STRONG>/<STRONG>setb</STRONG> capabilities take a single
+ The <STRONG>setaf</STRONG>/<STRONG>setab</STRONG> and <STRONG>setf</STRONG>/<STRONG>setb</STRONG> capabilities take a single
numeric argument each. Argument values 0-7 of <STRONG>setaf</STRONG>/<STRONG>setab</STRONG>
- are portably defined as follows (the middle column is the
+ are portably defined as follows (the middle column is the
symbolic #define available in the header for the <STRONG>curses</STRONG> or
- <STRONG>ncurses</STRONG> libraries). The terminal hardware is free to map
- these as it likes, but the RGB values indicate normal
+ <STRONG>ncurses</STRONG> libraries). The terminal hardware is free to map
+ these as it likes, but the RGB values indicate normal
locations in color space.
<STRONG>Color</STRONG> <STRONG>#define</STRONG> <STRONG>Value</STRONG> <STRONG>RGB</STRONG>
cyan <STRONG>COLOR_CYAN</STRONG> 6 0,max,max
white <STRONG>COLOR_WHITE</STRONG> 7 max,max,max
- The argument values of <STRONG>setf</STRONG>/<STRONG>setb</STRONG> historically correspond
+ The argument values of <STRONG>setf</STRONG>/<STRONG>setb</STRONG> historically correspond
to a different mapping, i.e.,
<STRONG>Color</STRONG> <STRONG>#define</STRONG> <STRONG>Value</STRONG> <STRONG>RGB</STRONG>
white <STRONG>COLOR_WHITE</STRONG> 7 max,max,max
It is important to not confuse the two sets of color capa-
- bilities; otherwise red/blue will be interchanged on the
+ bilities; otherwise red/blue will be interchanged on the
display.
- On an HP-like terminal, use <STRONG>scp</STRONG> with a color-pair number
+ On an HP-like terminal, use <STRONG>scp</STRONG> with a color-pair number
parameter to set which color pair is current.
- On a Tektronix-like terminal, the capability <STRONG>ccc</STRONG> may be
- present to indicate that colors can be modified. If so,
+ On a Tektronix-like terminal, the capability <STRONG>ccc</STRONG> may be
+ present to indicate that colors can be modified. If so,
the <STRONG>initc</STRONG> capability will take a color number (0 to <STRONG>colors</STRONG>
- - 1)and three more parameters which describe the color.
+ - 1)and three more parameters which describe the color.
These three parameters default to being interpreted as RGB
- (Red, Green, Blue) values. If the boolean capability <STRONG>hls</STRONG>
+ (Red, Green, Blue) values. If the boolean capability <STRONG>hls</STRONG>
is present, they are instead as HLS (Hue, Lightness, Satu-
ration) indices. The ranges are terminal-dependent.
- On an HP-like terminal, <STRONG>initp</STRONG> may give a capability for
- changing a color-pair value. It will take seven parame-
- ters; a color-pair number (0 to <STRONG>max_pairs</STRONG> - 1), and two
- triples describing first background and then foreground
- colors. These parameters must be (Red, Green, Blue) or
+ On an HP-like terminal, <STRONG>initp</STRONG> may give a capability for
+ changing a color-pair value. It will take seven parame-
+ ters; a color-pair number (0 to <STRONG>max_pairs</STRONG> - 1), and two
+ triples describing first background and then foreground
+ colors. These parameters must be (Red, Green, Blue) or
(Hue, Lightness, Saturation) depending on <STRONG>hls</STRONG>.
- On some color terminals, colors collide with highlights.
+ On some color terminals, colors collide with highlights.
You can register these collisions with the <STRONG>ncv</STRONG> capability.
- This is a bit-mask of attributes not to be used when col-
- ors are enabled. The correspondence with the attributes
+ This is a bit-mask of attributes not to be used when col-
+ ors are enabled. The correspondence with the attributes
understood by <STRONG>curses</STRONG> is as follows:
<STRONG>Attribute</STRONG> <STRONG>Bit</STRONG> <STRONG>Decimal</STRONG> <STRONG>Set</STRONG> <STRONG>by</STRONG>
&