-<!--
+<!--
****************************************************************************
- * Copyright (c) 2010-2013,2015 Free Software Foundation, Inc. *
+ * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2010-2015,2017 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_variables.3x,v 1.8 2015/08/22 23:33:22 tom Exp @
+ * @Id: curs_variables.3x,v 1.15 2020/04/18 14:29:07 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>curs_variables 3x</TITLE>
-<link rev=made href="mailto:bug-ncurses@gnu.org">
+<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
+<TITLE>curs_variables 3X</TITLE>
+<link rel="author" href="mailto:bug-ncurses@gnu.org">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1 class="no-header">curs_variables 3x</H1>
+<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>
+<B><A HREF="curs_variables.3X.html">curs_variables(3X)</A></B> <B><A HREF="curs_variables.3X.html">curs_variables(3X)</A></B>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>COLORS</STRONG>, <STRONG>COLOR_PAIRS</STRONG>, <STRONG>COLS</STRONG>, <STRONG>ESCDELAY</STRONG>, <STRONG>LINES</STRONG>, <STRONG>TABSIZE</STRONG>,
- <STRONG>curscr</STRONG>, <STRONG>newscr</STRONG>, <STRONG>stdscr</STRONG> - <STRONG>curses</STRONG> global variables
+ <B>COLORS</B>, <B>COLOR_PAIRS</B>, <B>COLS</B>, <B>ESCDELAY</B>, <B>LINES</B>, <B>TABSIZE</B>, <B>curscr</B>, <B>newscr</B>,
+ <B>stdscr</B> - <B>curses</B> global variables
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
- <STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
+ <B>#include</B> <B><curses.h></B>
- <STRONG>int</STRONG> <STRONG>COLOR_PAIRS;</STRONG>
- <STRONG>int</STRONG> <STRONG>COLORS;</STRONG>
- <STRONG>int</STRONG> <STRONG>COLS;</STRONG>
- <STRONG>int</STRONG> <STRONG>ESCDELAY;</STRONG>
- <STRONG>int</STRONG> <STRONG>LINES;</STRONG>
- <STRONG>int</STRONG> <STRONG>TABSIZE;</STRONG>
- <STRONG>WINDOW</STRONG> <STRONG>*</STRONG> <STRONG>curscr;</STRONG>
- <STRONG>WINDOW</STRONG> <STRONG>*</STRONG> <STRONG>newscr;</STRONG>
- <STRONG>WINDOW</STRONG> <STRONG>*</STRONG> <STRONG>stdscr;</STRONG>
+ <B>int</B> <B>COLOR_PAIRS;</B>
+ <B>int</B> <B>COLORS;</B>
+ <B>int</B> <B>COLS;</B>
+ <B>int</B> <B>ESCDELAY;</B>
+ <B>int</B> <B>LINES;</B>
+ <B>int</B> <B>TABSIZE;</B>
+ <B>WINDOW</B> <B>*</B> <B>curscr;</B>
+ <B>WINDOW</B> <B>*</B> <B>newscr;</B>
+ <B>WINDOW</B> <B>*</B> <B>stdscr;</B>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- This page summarizes variables provided by the <STRONG>curses</STRONG> li-
- brary. A more complete description is given in the <STRONG>curs-</STRONG>
- <STRONG><A HREF="ncurses.3x.html">es(3x)</A></STRONG> manual page.
+ This page summarizes variables provided by the <B>curses</B> library. A more
+ complete description is given in the <B><A HREF="curses.3X.html">curses(3X)</A></B> manual page.
- Depending on the configuration, these may be actual vari-
- ables, or macros (see <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG> and
- <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>) which provide read-only access to <EM>curs-</EM>
- <EM>es</EM>'s state. In either case, applications should treat
- them as read-only to avoid confusing the library.
+ Depending on the configuration, these may be actual variables, or
+ macros (see <B><A HREF="curs_threads.3X.html">curs_threads(3X)</A></B> and <B><A HREF="curs_opaque.3X.html">curs_opaque(3X)</A></B>) which provide read-
+ only access to <I>curses</I>'s state. In either case, applications should
+ treat them as read-only to avoid confusing the library.
</PRE><H3><a name="h3-COLOR_PAIRS">COLOR_PAIRS</a></H3><PRE>
- After initializing curses, this variable contains the num-
- ber of color pairs which the terminal can support. Usual-
- ly the number of color pairs will be the product <STRONG>COL-</STRONG>
- <STRONG>ORS</STRONG>*<STRONG>COLORS</STRONG>, however this is not always true:
+ After initializing curses, this variable contains the number of color
+ pairs which the terminal can support. Usually the number of color
+ pairs will be the product <B>COLORS</B>*<B>COLORS</B>, however this is not always
+ true:
- <STRONG>o</STRONG> a few terminals use HLS colors, which do not follow
- this rule
+ <B>o</B> a few terminals use HLS colors, which do not follow this rule
- <STRONG>o</STRONG> terminals supporting a large number of colors are lim-
- ited by the number of color pairs that can be repre-
- sented in a <EM>signed</EM> <EM>short</EM> value.
+ <B>o</B> terminals supporting a large number of colors are limited by the
+ number of color pairs that can be represented in a <I>signed</I> <I>short</I>
+ value.
</PRE><H3><a name="h3-COLORS">COLORS</a></H3><PRE>
- After initializing curses, this variable contains the num-
- ber of colors which the terminal can support.
+ After initializing curses, this variable contains the number of colors
+ which the terminal can support.
</PRE><H3><a name="h3-COLS">COLS</a></H3><PRE>
- After initializing curses, this variable contains the
- width of the screen, i.e., the number of columns.
+ After initializing curses, this variable contains the width of the
+ screen, i.e., the number of columns.
</PRE><H3><a name="h3-ESCDELAY">ESCDELAY</a></H3><PRE>
- This variable holds the number of milliseconds to wait af-
- ter reading an escape character, to distinguish between an
- individual escape character entered on the keyboard from
- escape sequences sent by cursor- and function-keys (see
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.
+ This variable holds the number of milliseconds to wait after reading an
+ escape character, to distinguish between an individual escape character
+ entered on the keyboard from escape sequences sent by cursor- and func-
+ tion-keys (see <B><A HREF="curses.3X.html">curses(3X)</A></B>).
</PRE><H3><a name="h3-LINES">LINES</a></H3><PRE>
- After initializing curses, this variable contains the
- height of the screen, i.e., the number of lines.
+ After initializing curses, this variable contains the height of the
+ screen, i.e., the number of lines.
</PRE><H3><a name="h3-TABSIZE">TABSIZE</a></H3><PRE>
- This variable holds the number of columns used by the
- <EM>curses</EM> library when converting a tab character to spaces
- as it adds the tab to a window (see <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>.
+ This variable holds the number of columns used by the <I>curses</I> library
+ when converting a tab character to spaces as it adds the tab to a win-
+ dow (see <B><A HREF="curs_addch.3X.html">curs_addch(3X)</A></B>.
</PRE><H3><a name="h3-The-Current-Screen">The Current Screen</a></H3><PRE>
- This implementation of curses uses a special window <STRONG>curscr</STRONG>
- to record its updates to the terminal screen.
+ This implementation of curses uses a special window <B>curscr</B> to record
+ its updates to the terminal screen.
+
+ This is referred to as the "physical screen" in the <B><A HREF="curs_refresh.3X.html">curs_refresh(3X)</A></B>
+ and <B><A HREF="curs_outopts.3X.html">curs_outopts(3X)</A></B> manual pages.
</PRE><H3><a name="h3-The-New-Screen">The New Screen</a></H3><PRE>
- This implementation of curses uses a special window <STRONG>newscr</STRONG>
- to hold updates to the terminal screen before applying
- them to <STRONG>curscr</STRONG>.
+ This implementation of curses uses a special window <B>newscr</B> to hold up-
+ dates to the terminal screen before applying them to <B>curscr</B>.
+
+ This is referred to as the "virtual screen" in the <B><A HREF="curs_kernel.3X.html">curs_kernel(3X)</A></B>,
+ <B><A HREF="curs_refresh.3X.html">curs_refresh(3X)</A></B> and <B><A HREF="curs_outopts.3X.html">curs_outopts(3X)</A></B> manual pages.
</PRE><H3><a name="h3-The-Standard-Screen">The Standard Screen</a></H3><PRE>
- Upon initializing curses, a default window called <STRONG>stdscr</STRONG>,
- which is the size of the terminal screen, is created.
- Many curses functions use this window.
+ Upon initializing curses, a default window called <B>stdscr</B>, which is the
+ size of the terminal screen, is created. Many curses functions use
+ this window.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The curses library is initialized using either
- <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG>, or <STRONG><A HREF="curs_initscr.3x.html">newterm(3x)</A></STRONG>.
+ The curses library is initialized using either <B><A HREF="curs_initscr.3X.html">initscr(3X)</A></B>, or
+ <B><A HREF="curs_initscr.3X.html">newterm(3X)</A></B>.
- If <STRONG>curses</STRONG> is configured to use separate curses/terminfo
- libraries, most of these variables reside in the curses
- library.
+ If <B>curses</B> is configured to use separate curses/terminfo libraries, most
+ of these variables reside in the curses library.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- ESCDELAY and TABSIZE are extensions, not provided in most
- other implementations of curses.
+ <B>TABSIZE</B> is a feature of SVr4 curses which is not documented by X/Open
+ curses.
+
+ <B>o</B> In SVr4 curses, <B>TABSIZE</B> is initially set from the terminal descrip-
+ tion's <B>init_tabs</B> capability. After that, it can be altered by the
+ applications using SVr4 curses.
+
+ SVr4 curses uses the current value of <B>TABSIZE</B> to compute the posi-
+ tion of tabstops for updating both the virtual screen with <B>add-</B>
+ <B><A HREF="addch.3X.html">ch(3X)</A></B> as well as the physical screen with <B><A HREF="curs_terminfo.3X.html">mvcur(3X)</A></B>.
+
+ <B>o</B> This implementation uses the current value of <B>TABSIZE</B> only for up-
+ dating the virtual screen. It uses the terminal description's <B>it</B>
+ (<B>init_tabs</B>) capability for computing hardware tabs (i.e., tab stops
+ on the physical screen).
+
+ <B>o</B> Other implementations differ. For instance, NetBSD curses allows
+ <B>TABSIZE</B> to be set through an environment variable. This implemen-
+ tation does not.
+
+ NetBSD curses does not support hardware tabs; it uses the <B>init_tabs</B>
+ capability and the <B>TABSIZE</B> variable only for updating the virtual
+ screen.
- ESCDELAY is an extension in AIX curses:
+ <B>ESCDELAY</B> is an extension in AIX curses:
- <STRONG>o</STRONG> In AIX, the units for ESCDELAY are <EM>fifths</EM> of a mil-
- lisecond.
+ <B>o</B> In AIX, the units for <B>ESCDELAY</B> are <I>fifths</I> of a millisecond.
- <STRONG>o</STRONG> The default value for AIX's ESCDELAY is 0.1 seconds.
+ <B>o</B> The default value for AIX's <B>ESCDELAY</B> is 0.1 seconds.
- <STRONG>o</STRONG> AIX also enforces a limit of 10,000 seconds for ESCDE-
- LAY; this implementation currently has no upper limit.
+ <B>o</B> AIX also enforces a limit of 10,000 seconds for <B>ESCDELAY</B>; this im-
+ plementation currently has no upper limit.
- This implementation has long used ESCDELAY with units of
- milliseconds, making it impossible to be completely com-
- patible with AIX. Likewise, most users have either decid-
- ed to override the value, or rely upon its default value.
+ This implementation has long used <B>ESCDELAY</B> with units of milliseconds,
+ making it impossible to be completely compatible with AIX. Likewise,
+ most users have either decided to override the value, or rely upon its
+ default value.
</PRE><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_opaque.3x.html">curs_opaque(3x)</A></STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>,
- <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
+ <B><A HREF="curses.3X.html">curses(3X)</A></B>, <B><A HREF="curs_opaque.3X.html">curs_opaque(3X)</A></B>, <B><A HREF="curs_terminfo.3X.html">curs_terminfo(3X)</A></B>, <B><A HREF="curs_threads.3X.html">curs_threads(3X)</A></B>,
+ <B><A HREF="term_variables.3X.html">term_variables(3X)</A></B>, <B><A HREF="terminfo.5.html">terminfo(5)</A></B>.
- <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
+ <B><A HREF="curs_variables.3X.html">curs_variables(3X)</A></B>
</PRE>
<div class="nav">
<ul>