3 ****************************************************************************
4 * Copyright 2018-2023,2024 Thomas E. Dickey *
5 * Copyright 1998-2015,2017 Free Software Foundation, Inc. *
7 * Permission is hereby granted, free of charge, to any person obtaining a *
8 * copy of this software and associated documentation files (the *
9 * "Software"), to deal in the Software without restriction, including *
10 * without limitation the rights to use, copy, modify, merge, publish, *
11 * distribute, distribute with modifications, sublicense, and/or sell *
12 * copies of the Software, and to permit persons to whom the Software is *
13 * furnished to do so, subject to the following conditions: *
15 * The above copyright notice and this permission notice shall be included *
16 * in all copies or substantial portions of the Software. *
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
19 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
20 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
21 * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
22 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
23 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
24 * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
26 * Except as contained in this notice, the name(s) of the above copyright *
27 * holders shall not be used in advertising or otherwise to promote the *
28 * sale, use or other dealings in this Software without prior written *
30 ****************************************************************************
31 * @Id: ncurses.3x,v 1.195 2024/01/05 21:46:58 tom Exp @
32 * X/Open Curses Issue 7 assumes some optimization will be done, but
33 * does not mandate it in any way.
34 * See X/Open Curses Issue 4, Version 2, pp. 227-234.
35 * See X/Open Curses Issue 7, pp. 311-318.
36 * XXX: What's missing? GBR counts untic(1), and that's all.
38 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
41 <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
42 <meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
43 <TITLE>ncurses 3x 2024-01-05 ncurses 6.4 Library calls</TITLE>
44 <link rel="author" href="mailto:bug-ncurses@gnu.org">
48 <H1 class="no-header">ncurses 3x 2024-01-05 ncurses 6.4 Library calls</H1>
50 <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> Library calls <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
55 </PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
56 <STRONG>ncurses</STRONG> - character-cell terminal interface with optimized output
59 </PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
60 <STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
63 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
64 The <EM>ncurses</EM> library routines give the user a terminal-independent
65 method of updating character screens with reasonable optimization.
66 This implementation is "new curses" (<EM>ncurses</EM>) and is the approved
67 replacement for 4.4BSD classic curses, which has been discontinued.
68 This describes <EM>ncurses</EM> version 6.4 (patch 20240106).
70 The <EM>ncurses</EM> library emulates the curses library of System V Release 4
71 Unix ("SVr4"), and XPG4 (X/Open Portability Guide) curses (also known
72 as XSI curses). XSI stands for X/Open System Interfaces Extension.
73 The <EM>ncurses</EM> library is freely redistributable in source form.
75 <EM>ncurses</EM> man pages employ several sections to clarify matters of usage
76 and interoperability with other <EM>curses</EM> implementations.
78 <STRONG>o</STRONG> "NOTES" describes matters and caveats of which any user of the
79 <EM>ncurses</EM> API should be aware, such as limitations on the size of an
80 underlying integral type or the availability of a preprocessor
81 macro exclusive of a function definition (which prevents its
82 address from being taken). This section also describes
83 implementation details that will be significant to the programmer
84 but which are not standardized.
86 <STRONG>o</STRONG> "EXTENSIONS" presents <EM>ncurses</EM> innovations beyond the X/Open Curses
87 standard and/or the SVr4 <EM>curses</EM> implementation. They are termed
88 <EM>extensions</EM> to indicate that they cannot be implemented solely by
89 using the library API, but require access to the library's internal
92 <STRONG>o</STRONG> "PORTABILITY" discusses matters (beyond the exercise of extensions)
93 that should be considered when writing to a <EM>curses</EM> standard, or to
94 multiple implementations.
96 <STRONG>o</STRONG> "HISTORY" examines points of detail in <EM>ncurses</EM> and other <EM>curses</EM>
97 implementations over the decades of their development, particularly
98 where precedent or inertia have frustrated better design (and, in a
99 few cases, where such inertia has been overcome).
101 A program using these routines must be linked with the <STRONG>-lncurses</STRONG>
102 option, or (if it has been generated) with the debugging library
103 <STRONG>-lncurses_g</STRONG>. (Your system integrator may also have installed these
104 libraries under the names <STRONG>-lcurses</STRONG> and <STRONG>-lcurses_g</STRONG>.) The ncurses_g
105 library generates trace logs (in a file called "trace" in the current
106 directory) that describe curses actions. See section "ALTERNATE
107 CONFIGURATIONS" below.
109 The <EM>ncurses</EM> package supports: overall screen, window and pad
110 manipulation; output to windows and pads; reading terminal input;
111 control over terminal and <STRONG>curses</STRONG> input and output options; environment
112 query routines; color manipulation; use of soft label keys; terminfo
113 capabilities; and access to low-level terminal-manipulation routines.
116 </PRE><H3><a name="h3-Initialization">Initialization</a></H3><PRE>
117 The library uses the locale which the calling program has initialized.
118 That is normally done with <STRONG>setlocale(3)</STRONG>:
120 <STRONG>setlocale(LC_ALL,</STRONG> <STRONG>"");</STRONG>
122 If the locale is not initialized, the library assumes that characters
123 are printable as in ISO-8859-1, to work with certain legacy programs.
124 You should initialize the locale and not rely on specific details of
125 the library when the locale has not been setup.
127 The function <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG> must be called to initialize the
128 library before any of the other routines that deal with windows and
129 screens are used. The routine <STRONG><A HREF="curs_initscr.3x.html">endwin(3x)</A></STRONG> must be called before
132 To get character-at-a-time input without echoing (most interactive,
133 screen oriented programs want this), the following sequence should be
136 <STRONG>initscr();</STRONG> <STRONG>cbreak();</STRONG> <STRONG>noecho();</STRONG>
138 Most programs would additionally use the sequence:
140 <STRONG>intrflush(stdscr,</STRONG> <STRONG>FALSE);</STRONG>
141 <STRONG>keypad(stdscr,</STRONG> <STRONG>TRUE);</STRONG>
143 Before a <STRONG>curses</STRONG> program is run, the tab stops of the terminal should be
144 set and its initialization strings, if defined, must be output. This
145 can be done by executing the <STRONG>tput</STRONG> <STRONG>init</STRONG> command after the shell
146 environment variable <EM>TERM</EM> has been exported. (The BSD-style <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>
147 utility also performs this function.) See subsection "Tabs and
148 Initialization" of <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
151 </PRE><H3><a name="h3-Overview">Overview</a></H3><PRE>
152 A <EM>curses</EM> library abstracts the terminal screen by representing all or
153 part of it as a <EM>WINDOW</EM> data structure. A <EM>window</EM> is a rectangular grid
154 of character cells, addressed by row and column coordinates (<EM>y</EM>, <EM>x</EM>),
155 with the upper left corner as (0, 0). A window called <STRONG>stdscr</STRONG>, the same
156 size as the terminal screen, is always available. Create others with
157 <STRONG><A HREF="curs_window.3x.html">newwin(3x)</A></STRONG>.
159 A <EM>curses</EM> library does not manage overlapping windows. (See <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG>
160 if you desire this.) You can either use <STRONG>stdscr</STRONG> to manage one screen-
161 filling window, or tile the screen into non-overlapping windows and not
162 use <STRONG>stdscr</STRONG> at all. Mixing the two approaches will result in
163 unpredictable, and undesired, effects.
165 Functions permit manipulation of a window and the <EM>cursor</EM> identifying
166 the cell within it at which the next output operation will occur.
167 Among those, the most basic are <STRONG><A HREF="curs_move.3x.html">move(3x)</A></STRONG> and <STRONG><A HREF="curs_addch.3x.html">addch(3x)</A></STRONG>: these place the
168 cursor and write a character to <STRONG>stdscr</STRONG>, respectively. As a rule,
169 window-addressing functions feature names prefixed (or infixed, see
170 below) with "w"; these allow the user to specify a pointer to a <EM>WINDOW.</EM>
171 Counterparts not thus prefixed (or infixed) affect <STRONG>stdscr</STRONG>. Because
172 moving the cursor prior to another operation is so common, <EM>curses</EM>
173 generally also provides functions with a "mv" prefix as a convenience.
174 Thus, the library defines all of <STRONG>addch</STRONG>, <STRONG>waddch</STRONG>, <STRONG>mvaddch</STRONG>, and <STRONG>mvwaddch</STRONG>.
175 When both prefixes are present, the order of arguments is a <EM>WINDOW</EM>
176 pointer first, then a <EM>y</EM> and <EM>x</EM> coordinate pair.
178 Updating the terminal screen with every <EM>curses</EM> call can cause
179 unpleasant flicker or inefficient use of the communications channel to
180 the device. Therefore, after using <EM>curses</EM> functions to accumulate a
181 set of desired updates that make sense to present together, call
182 <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG> to tell the library to make the user's screen look like
183 <STRONG>stdscr</STRONG>. <EM>ncurses</EM> <EM>optimizes</EM> its output by computing a minimal number of
184 operations to mutate the screen from its state at the previous refresh
185 to the new one. Effective optimization demands accurate information
186 about the terminal device: the management of such information is the
187 province of the <STRONG><A HREF="curs_terminfo.3x.html">terminfo(3x)</A></STRONG> API, a feature of every standard <EM>curses</EM>
190 Special windows called <EM>pads</EM> may also be manipulated. These are windows
191 that are not constrained to the size of the terminal screen and whose
192 contents need not be completely displayed. See <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>.
194 In addition to drawing characters on the screen, rendering attributes
195 and colors may be supported, causing the characters to show up in such
196 modes as underlined, in reverse video, or in color on terminals that
197 support such display enhancements. See <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>.
199 <EM>curses</EM> predefines constants for a small set of line-drawing and other
200 graphics corresponding to the DEC Alternate Character Set (ACS), a
201 feature of VT100 and other terminals. See <STRONG><A HREF="curs_addch.3x.html">waddch(3x)</A></STRONG> and <STRONG><A HREF="curs_add_wch.3x.html">wadd_wch(3x)</A></STRONG>.
203 <EM>curses</EM> is implemented using the operating system's terminal driver;
204 keystroke events are received not as scan codes but as byte sequences.
205 Graphical keycaps (alphanumeric and punctuation keys, and the space)
206 appear as-is. Everything else, including the tab, enter/return,
207 keypad, arrow, and function keys, appears as a control character or a
208 multibyte <EM>escape</EM> <EM>sequence.</EM> <EM>curses</EM> translates these into unique <EM>key</EM>
209 <EM>codes.</EM> See <STRONG><A HREF="curs_getch.3x.html">getch(3x)</A></STRONG>.
212 </PRE><H3><a name="h3-Effects-of-GUIs-and-Environment-Variables">Effects of GUIs and Environment Variables</a></H3><PRE>
213 The selection of an approprate value of <EM>TERM</EM> in the process environment
214 is essential to correct <EM>curses</EM> and <EM>terminfo</EM> library operation. A well-
215 configured system selects a correct <EM>TERM</EM> value automatically; <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>
216 may assist with troubleshooting exotic situations.
218 If the environment variables <EM>LINES</EM> and <EM>COLUMNS</EM> are set, or if the
219 <EM>curses</EM> program is executing in a graphical windowing environment, the
220 information obtained thence overrides that obtained by <EM>terminfo</EM>. An
221 <EM>ncurses</EM> extension supports resizable terminals; see <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>.
223 If the environment variable <EM>TERMINFO</EM> is defined, a <EM>curses</EM> program
224 checks first for a terminal type description in the location it
225 identifies. <EM>TERMINFO</EM> is useful for developing experimental type
226 descriptions or when write permission to <EM>/usr/share/terminfo</EM> is not
229 See section "ENVIRONMENT" below.
232 </PRE><H3><a name="h3-Naming-Conventions">Naming Conventions</a></H3><PRE>
233 Many <EM>curses</EM> functions have two or more versions. Those prefixed with
234 "w" require a window argument. Four functions prefixed with "p"
235 require a pad argument. Those without a prefix generally operate on
236 <STRONG>stdscr</STRONG>.
238 In function synopses, <EM>ncurses</EM> man pages apply the following names to
241 <EM>bf</EM> <EM>bool</EM> (<STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>)
242 <EM>win</EM> pointer to <EM>WINDOW</EM>
243 <EM>pad</EM> pointer to <EM>WINDOW</EM> that is a pad
246 </PRE><H3><a name="h3-Wide-and-Non-wide-Character-Configurations">Wide and Non-wide Character Configurations</a></H3><PRE>
247 This manual page describes functions that appear in any configuration
248 of the library. There are two common configurations; see section
249 "ALTERNATE CONFIGURATIONS" below.
251 <EM>ncurses</EM> is the library in its "non-wide" configuration, handling only
252 eight-bit characters. It stores a character combined with
253 attributes in a <EM>chtype</EM> datum, which is often an alias of <EM>int.</EM>
255 Attributes alone (with no corresponding character) can be
256 stored in variables of <EM>chtype</EM> or <EM>attr</EM><STRONG>_</STRONG><EM>t</EM> type. In either
257 case, they are represented as an integral bit mask.
259 Each cell of a <EM>WINDOW</EM> is stored as a <EM>chtype.</EM>
261 <EM>ncursesw</EM> is the library in its "wide" configuration, which handles
262 character encodings requiring a larger data type than <EM>char</EM> (a
263 byte-sized type) can represent. It adds about one third more
264 calls using additional data types that can store such
265 <EM>multibyte</EM> characters.
267 <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM> corresponds to the non-wide configuration's <EM>chtype.</EM>
268 It always a structure type, because it stores more
269 data than fits into an integral type. A character
270 code may not be representable as a <EM>char,</EM> and
271 moreover more than one character may occupy a cell
272 (as with accent marks and other diacritics). Each
273 character is of type <EM>wchar</EM><STRONG>_</STRONG><EM>t;</EM> a complex character
274 contains one spacing character and zero or more non-
275 spacing characters (see below). Attributes and
276 color data are stored in separate fields of the
277 structure, not combined as in <EM>chtype.</EM>
279 Each cell of a <EM>WINDOW</EM> is stored as a <EM>cchar</EM><STRONG>_</STRONG><EM>t.</EM>
281 The <STRONG><A HREF="curs_getcchar.3x.html">setcchar(3x)</A></STRONG> and <STRONG><A HREF="curs_getcchar.3x.html">getcchar(3x)</A></STRONG> functions store and
282 retrieve the data from a <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM> structure. The wide library
283 API of <EM>ncurses</EM> depends on two data types standardized by ISO
286 <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM> stores a wide character. Like <EM>chtype,</EM> it may be an
287 alias of <EM>int.</EM> Depending on the character encoding,
288 a wide character may be <EM>spacing,</EM> meaning that it
289 occupies a character cell by itself and typically
290 accompanies cursor advancement, or <EM>non-spacing,</EM>
291 meaning that it occupies the same cell as a spacing
292 character, is often regarded as a "modifier" of the
293 base glyph with which it combines, and typically
294 does not advance the cursor.
296 <EM>wint</EM><STRONG>_</STRONG><EM>t</EM> can store a <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM> or the constant <STRONG>WEOF</STRONG>,
297 analogously to the <EM>int</EM>-sized character manipulation
298 functions of ISO C and its constant <STRONG>EOF</STRONG>.
300 The wide library provides additional functions that
301 complement those in the non-wide library where the size of
302 the underlying character type is significant. A somewhat
303 regular naming convention relates many of the wide variants
304 to their non-wide counterparts; where a non-wide function
305 name contains "ch" or "str", prefix it with "_w" to obtain
306 the wide counterpart. For example, <STRONG>waddch</STRONG> becomes <STRONG>wadd_wch</STRONG>.
308 This convention is inapplicable to some non-wide function
309 names, so other transformations are used for the wide
310 configuration: in the window background management functions,
311 "bkgd" becomes "bkgrnd"; the window border-drawing and
312 -clearing functions are suffixed with "_set".
315 </PRE><H3><a name="h3-Function-Name-Index">Function Name Index</a></H3><PRE>
316 The following table lists the <EM>curses</EM> functions provided in the non-wide
317 and wide APIs and the corresponding man pages that describe them.
318 Those flagged with "*" are <EM>ncurses</EM>-specific, neither described by
319 X/Open Curses nor present in SVr4.
321 <STRONG><EM>curses</EM></STRONG> Function Name Man Page
322 ---------------------------------------------
323 COLOR_PAIR <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
325 PAIR_NUMBER <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
326 add_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
327 add_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
328 add_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
329 addch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
330 addchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
331 addchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
332 addnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
333 addnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
334 addstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
335 addwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
336 alloc_pair <STRONG><A HREF="new_pair.3x.html">new_pair(3x)</A></STRONG>*
337 assume_default_colors <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>*
338 attr_get <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
339 attr_off <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
340 attr_on <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
341 attr_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
342 attroff <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
343 attron <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
344 attrset <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
345 baudrate <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
346 beep <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
347 bkgd <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
348 bkgdset <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
349 bkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
350 bkgrndset <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
351 border <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
352 border_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
353 box <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
354 box_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
355 can_change_color <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
356 cbreak <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
357 chgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
358 clear <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
359 clearok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
360 clrtobot <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
361 clrtoeol <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
362 color_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
363 color_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
364 copywin <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
365 curs_set <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
366 curses_trace <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
367 curses_version <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>*
368 def_prog_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
369 def_shell_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
370 define_key <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>*
371 del_curterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
372 delay_output <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
373 delch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
374 deleteln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
375 delscreen <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
376 delwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
377 derwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
378 doupdate <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
379 dupwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
380 echo <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
381 echo_wchar <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
382 echochar <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
383 endwin <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
384 erase <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
385 erasechar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
386 erasewchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
387 exit_curses <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>*
388 exit_terminfo <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>*
389 extended_color_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
390 extended_pair_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
392 extended_slk_color <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>*
393 filter <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
394 find_pair <STRONG><A HREF="new_pair.3x.html">new_pair(3x)</A></STRONG>*
395 flash <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
396 flushinp <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
397 free_pair <STRONG><A HREF="new_pair.3x.html">new_pair(3x)</A></STRONG>*
398 get_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
399 get_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
400 getattrs <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
401 getbegx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
402 getbegy <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
403 getbegyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
404 getbkgd <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
405 getbkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
406 getcchar <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
407 getch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
408 getcurx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
409 getcury <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
410 getmaxx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
411 getmaxy <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
412 getmaxyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
413 getmouse <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
414 getn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
415 getnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
416 getparx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
417 getpary <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
418 getparyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
419 getstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
420 getsyx <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
421 getwin <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
422 getyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
423 halfdelay <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
424 has_colors <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
425 has_ic <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
426 has_il <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
427 has_key <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>*
428 has_mouse <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
429 hline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
430 hline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
431 idcok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
432 idlok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
433 immedok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
434 in_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
435 in_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
436 in_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
437 inch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
438 inchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
439 inchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
440 init_color <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
441 init_extended_color <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
442 init_extended_pair <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
443 init_pair <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
444 initscr <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
445 innstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
446 innwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
447 ins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
448 ins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
449 ins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
450 insch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
451 insdelln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
452 insertln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
453 insnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
454 insstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
455 instr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
456 intrflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
457 inwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
459 is_cbreak <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>*
460 is_cleared <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
461 is_echo <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>*
462 is_idcok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
463 is_idlok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
464 is_immedok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
465 is_keypad <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
466 is_leaveok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
467 is_linetouched <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
468 is_nl <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>*
469 is_nodelay <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
470 is_notimeout <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
471 is_pad <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
472 is_raw <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>*
473 is_scrollok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
474 is_subwin <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
475 is_syncok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
476 is_term_resized <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>*
477 is_wintouched <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
478 isendwin <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
479 key_defined <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>*
480 key_name <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
481 keybound <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>*
482 keyname <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
483 keyok <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>*
484 keypad <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
485 killchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
486 killwchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
487 leaveok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
488 longname <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
489 mcprint <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>*
490 meta <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
491 mouse_trafo <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
492 mouseinterval <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
493 mousemask <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
494 move <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
495 mvadd_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
496 mvadd_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
497 mvadd_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
498 mvaddch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
499 mvaddchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
500 mvaddchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
501 mvaddnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
502 mvaddnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
503 mvaddstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
504 mvaddwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
505 mvchgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
506 mvcur <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
507 mvdelch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
508 mvderwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
509 mvget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
510 mvget_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
511 mvgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
512 mvgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
513 mvgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
514 mvgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
515 mvhline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
516 mvhline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
517 mvin_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
518 mvin_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
519 mvin_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
520 mvinch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
521 mvinchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
522 mvinchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
523 mvinnstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
524 mvinnwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
526 mvins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
527 mvins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
528 mvins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
529 mvinsch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
530 mvinsnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
531 mvinsstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
532 mvinstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
533 mvinwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
534 mvprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
535 mvscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
536 mvvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
537 mvvline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
538 mvwadd_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
539 mvwadd_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
540 mvwadd_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
541 mvwaddch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
542 mvwaddchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
543 mvwaddchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
544 mvwaddnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
545 mvwaddnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
546 mvwaddstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
547 mvwaddwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
548 mvwchgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
549 mvwdelch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
550 mvwget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
551 mvwget_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
552 mvwgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
553 mvwgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
554 mvwgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
555 mvwgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
556 mvwhline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
557 mvwhline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
558 mvwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
559 mvwin_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
560 mvwin_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
561 mvwin_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
562 mvwinch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
563 mvwinchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
564 mvwinchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
565 mvwinnstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
566 mvwinnwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
567 mvwins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
568 mvwins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
569 mvwins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
570 mvwinsch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
571 mvwinsnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
572 mvwinsstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
573 mvwinstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
574 mvwinwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
575 mvwprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
576 mvwscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
577 mvwvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
578 mvwvline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
579 napms <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
580 newpad <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
581 newterm <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
582 newwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
583 nl <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
584 nocbreak <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
585 nodelay <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
586 noecho <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
587 nofilter <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>*
588 nonl <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
589 noqiflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
590 noraw <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
591 notimeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
593 overlay <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
594 overwrite <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
595 pair_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
596 pecho_wchar <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
597 pechochar <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
598 pnoutrefresh <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
599 prefresh <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
600 printw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
601 putp <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
602 putwin <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
603 qiflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
604 raw <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
605 redrawwin <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
606 refresh <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
607 reset_color_pairs <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
608 reset_prog_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
609 reset_shell_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
610 resetty <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
611 resize_term <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>*
612 resizeterm <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>*
613 restartterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
614 ripoffline <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
615 savetty <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
616 scanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
617 scr_dump <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
618 scr_init <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
619 scr_restore <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
620 scr_set <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
621 scrl <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
622 scroll <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
623 scrollok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
624 set_curterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
625 set_term <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
626 setcchar <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
627 setscrreg <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
628 setsyx <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
629 setupterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
630 slk_attr <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>*
631 slk_attr_off <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
632 slk_attr_on <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
633 slk_attr_set <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
634 slk_attroff <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
635 slk_attron <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
636 slk_attrset <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
637 slk_clear <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
638 slk_color <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
639 slk_init <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
640 slk_label <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
641 slk_noutrefresh <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
642 slk_refresh <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
643 slk_restore <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
644 slk_set <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
645 slk_touch <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
646 slk_wset <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
647 standend <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
648 standout <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
649 start_color <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
650 subpad <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
651 subwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
652 syncok <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
653 term_attrs <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
654 termattrs <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
655 termname <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
656 tgetent <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
657 tgetflag <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
658 tgetnum <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
660 tgetstr <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
661 tgoto <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
662 tigetflag <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
663 tigetnum <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
664 tigetstr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
665 timeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
666 tiparm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
667 tiparm_s <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>*
668 tiscan_s <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>*
669 touchline <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
670 touchwin <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
671 tparm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
672 tputs <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
673 tputs <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
674 trace <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
675 typeahead <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
676 unctrl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
677 unget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
678 ungetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
679 ungetmouse <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
680 untouchwin <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
681 use_default_colors <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>*
682 use_env <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
683 use_extended_names <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>*
684 use_legacy_coding <STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG>*
685 use_tioctl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>*
686 vid_attr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
687 vid_puts <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
688 vidattr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
689 vidputs <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
690 vline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
691 vline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
692 vw_printw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
693 vw_scanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
694 vwprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
695 vwscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
696 wadd_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
697 wadd_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
698 wadd_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
699 waddch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
700 waddchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
701 waddchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
702 waddnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
703 waddnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
704 waddstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
705 waddwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
706 wattr_get <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
707 wattr_off <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
708 wattr_on <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
709 wattr_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
710 wattroff <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
711 wattron <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
712 wattrset <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
713 wbkgd <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
714 wbkgdset <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
715 wbkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
716 wbkgrndset <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
717 wborder <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
718 wborder_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
719 wchgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
720 wclear <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
721 wclrtobot <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
722 wclrtoeol <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
723 wcolor_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
724 wcursyncup <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
725 wdelch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
727 wdeleteln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
728 wecho_wchar <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
729 wechochar <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
730 wenclose <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
731 werase <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
732 wget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
733 wget_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
734 wgetbkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
735 wgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
736 wgetdelay <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
737 wgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
738 wgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
739 wgetparent <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
740 wgetscrreg <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
741 wgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
742 whline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
743 whline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
744 win_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
745 win_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
746 win_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
747 winch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
748 winchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
749 winchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
750 winnstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
751 winnwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
752 wins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
753 wins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
754 wins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
755 winsch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
756 winsdelln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
757 winsertln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
758 winsnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
759 winsstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
760 winstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
761 winwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
762 wmouse_trafo <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
763 wmove <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
764 wnoutrefresh <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
765 wprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
766 wredrawln <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
767 wrefresh <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
768 wresize <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>*
769 wscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
770 wscrl <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
771 wsetscrreg <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
772 wstandend <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
773 wstandout <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
774 wsyncdown <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
775 wsyncup <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
776 wtimeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
777 wtouchln <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
778 wunctrl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
779 wvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
780 wvline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
782 Depending on the configuration, additional sets of functions may be
785 <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG> - curses memory-leak checking
787 <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG> - curses screen-pointer extension
789 <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG> - curses thread support
791 <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG> - curses debugging routines
794 </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
795 Unless otherwise noted, functions that return an integer return <STRONG>OK</STRONG> on
796 success and <STRONG>ERR</STRONG> on failure. Functions that return pointers return <STRONG>NULL</STRONG>
797 on failure. Typically, <EM>ncurses</EM> treats a null pointer passed as a
798 function parameter as a failure.
800 Functions with a "mv" prefix first perform cursor movement using <STRONG>wmove</STRONG>
801 and fail if the position is outside the window, or (for "mvw"
802 functions) if the <EM>WINDOW</EM> pointer is null.
805 </PRE><H2><a name="h2-ENVIRONMENT">ENVIRONMENT</a></H2><PRE>
806 The following environment symbols are useful for customizing the
807 runtime behavior of the <EM>ncurses</EM> library. The most important ones have
808 been already discussed in detail.
811 </PRE><H3><a name="h3-CC-command-character"><EM>CC</EM> command-character</a></H3><PRE>
812 When set, change the <STRONG>command_character</STRONG> (<STRONG>cmdch</STRONG>) capability value of
813 loaded <EM>terminfo</EM> entries to the value of this variable. Very few <EM>term-</EM>
814 <EM>info</EM> entries provide this feature.
816 Because this name is also used in development environments to represent
817 the C compiler's name, <EM>ncurses</EM> ignores it if it does not happen to be a
821 </PRE><H3><a name="h3-BAUDRATE"><EM>BAUDRATE</EM></a></H3><PRE>
822 The debugging library checks this environment variable when the
823 application has redirected output to a file. The variable's numeric
824 value is used for the baudrate. If no value is found, <EM>ncurses</EM> uses
825 9600. This allows testers to construct repeatable test-cases that take
826 into account costs that depend on baudrate.
829 </PRE><H3><a name="h3-COLUMNS"><EM>COLUMNS</EM></a></H3><PRE>
830 Specify the width of the screen in characters. Applications running in
831 a windowing environment usually are able to obtain the width of the
832 window in which they are executing. If neither the <EM>COLUMNS</EM> value nor
833 the terminal's screen size is available, <EM>ncurses</EM> uses the size which
834 may be specified in the terminfo database (i.e., the <STRONG>cols</STRONG> capability).
836 It is important that your application use a correct size for the
837 screen. This is not always possible because your application may be
838 running on a host which does not honor NAWS (Negotiations About Window
839 Size), or because you are temporarily running as another user.
840 However, setting <EM>COLUMNS</EM> and/or <EM>LINES</EM> overrides the library's use of
841 the screen size obtained from the operating system.
843 Either <EM>COLUMNS</EM> or <EM>LINES</EM> symbols may be specified independently. This
844 is mainly useful to circumvent legacy misfeatures of terminal
845 descriptions, e.g., xterm which commonly specifies a 65 line screen.
846 For best results, <STRONG>lines</STRONG> and <STRONG>cols</STRONG> should not be specified in a terminal
847 description for terminals which are run as emulations.
849 Use the <STRONG>use_env</STRONG> function to disable all use of external environment
850 (but not including system calls) to determine the screen size. Use the
851 <STRONG>use_tioctl</STRONG> function to update <EM>COLUMNS</EM> or <EM>LINES</EM> to match the screen size
852 obtained from system calls or the terminal database.
855 </PRE><H3><a name="h3-ESCDELAY"><EM>ESCDELAY</EM></a></H3><PRE>
856 Specifies the total time, in milliseconds, for which <EM>ncurses</EM> will await
857 a character sequence, e.g., a function key. The default value, 1000
858 milliseconds, is enough for most uses. However, it is made a variable
859 to accommodate unusual applications.
861 The most common instance where you may wish to change this value is to
862 work with slow hosts, e.g., running on a network. If the host cannot
863 read characters rapidly enough, it will have the same effect as if the
864 terminal did not send characters rapidly enough. The library will
867 Note that xterm mouse events are built up from character sequences
868 received from the xterm. If your application makes heavy use of
869 multiple-clicking, you may wish to lengthen this default value because
870 the timeout applies to the composed multi-click event as well as the
873 In addition to the environment variable, this implementation provides a
874 global variable with the same name. Portable applications should not
875 rely upon the presence of <STRONG>ESCDELAY</STRONG> in either form, but setting the
876 environment variable rather than the global variable does not create
877 problems when compiling an application.
880 </PRE><H3><a name="h3-HOME"><EM>HOME</EM></a></H3><PRE>
881 Tells <EM>ncurses</EM> where your home directory is. That is where it may read
882 and write auxiliary terminal descriptions:
888 </PRE><H3><a name="h3-LINES"><EM>LINES</EM></a></H3><PRE>
889 Like <EM>COLUMNS</EM>, specify the height of the screen in characters. See
890 <EM>COLUMNS</EM> for a detailed description.
893 </PRE><H3><a name="h3-MOUSE_BUTTONS_123"><EM>MOUSE_BUTTONS_123</EM></a></H3><PRE>
894 This applies only to the OS/2 EMX port. It specifies the order of
895 buttons on the mouse. OS/2 numbers a 3-button mouse inconsistently
896 from other platforms:
902 This variable lets you customize the mouse. The variable must be three
903 numeric digits 1-3 in any order, e.g., 123 or 321. If it is not
904 specified, <EM>ncurses</EM> uses 132.
907 </PRE><H3><a name="h3-NCURSES_ASSUMED_COLORS"><EM>NCURSES_ASSUMED_COLORS</EM></a></H3><PRE>
908 Override the compiled-in assumption that the terminal's default colors
909 are white-on-black (see <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>). You may set the
910 foreground and background color values with this environment variable
911 by proving a 2-element list: foreground,background. For example, to
912 tell <EM>ncurses</EM> to not assume anything about the colors, set this to
913 "-1,-1". To make it green-on-black, set it to "2,0". Any positive
914 value from zero to the terminfo <STRONG>max_colors</STRONG> value is allowed.
917 </PRE><H3><a name="h3-NCURSES_CONSOLE2"><EM>NCURSES_CONSOLE2</EM></a></H3><PRE>
918 This applies only to the MinGW port of <EM>ncurses</EM>.
920 The <STRONG>Console2</STRONG> program's handling of the Microsoft Console API call
921 <STRONG>CreateConsoleScreenBuffer</STRONG> is defective. Applications which use this
922 will hang. However, it is possible to simulate the action of this call
923 by mapping coordinates, explicitly saving and restoring the original
924 screen contents. Setting the environment variable <STRONG>NCGDB</STRONG> has the same
928 </PRE><H3><a name="h3-NCURSES_GPM_TERMS"><EM>NCURSES_GPM_TERMS</EM></a></H3><PRE>
929 This applies only to <EM>ncurses</EM> configured to use the GPM interface.
931 If present, the environment variable is a list of one or more terminal
932 names against which the <EM>TERM</EM> environment variable is matched. Setting
933 it to an empty value disables the GPM interface; using the built-in
934 support for xterm, etc.
936 If the environment variable is absent, <EM>ncurses</EM> will attempt to open GPM
937 if <EM>TERM</EM> contains "linux".
940 </PRE><H3><a name="h3-NCURSES_NO_HARD_TABS"><EM>NCURSES_NO_HARD_TABS</EM></a></H3><PRE>
941 <EM>ncurses</EM> may use tabs as part of cursor movement optimization. In some
942 cases, your terminal driver may not handle these properly. Set this
943 environment variable to any value to disable the feature. You can also
944 adjust your <STRONG>stty(1)</STRONG> settings to avoid the problem.
947 </PRE><H3><a name="h3-NCURSES_NO_MAGIC_COOKIE"><EM>NCURSES_NO_MAGIC_COOKIE</EM></a></H3><PRE>
948 Some terminals use a magic-cookie feature which requires special
949 handling to make highlighting and other video attributes display
950 properly. You can suppress the highlighting entirely for these
951 terminals by setting this environment variable to any value.
954 </PRE><H3><a name="h3-NCURSES_NO_PADDING"><EM>NCURSES_NO_PADDING</EM></a></H3><PRE>
955 Most of the terminal descriptions in the terminfo database are written
956 for real "hardware" terminals. Many people use terminal emulators
957 which run in a windowing environment and use curses-based applications.
958 Terminal emulators can duplicate all of the important aspects of a
959 hardware terminal, but they do not have the same limitations. The
960 chief limitation of a hardware terminal from the standpoint of your
961 application is the management of dataflow, i.e., timing. Unless a
962 hardware terminal is interfaced into a terminal concentrator (which
963 does flow control), it (or your application) must manage dataflow,
964 preventing overruns. The cheapest solution (no hardware cost) is for
965 your program to do this by pausing after operations that the terminal
966 does slowly, such as clearing the display.
968 As a result, many terminal descriptions (including the vt100) have
969 delay times embedded. You may wish to use these descriptions, but not
970 want to pay the performance penalty.
972 Set the <EM>NCURSES</EM><STRONG>_</STRONG><EM>NO</EM><STRONG>_</STRONG><EM>PADDING</EM> environment variable to disable all but
973 mandatory padding. Mandatory padding is used as a part of special
974 control sequences such as <STRONG>flash</STRONG>.
977 </PRE><H3><a name="h3-NCURSES_NO_SETBUF"><EM>NCURSES_NO_SETBUF</EM></a></H3><PRE>
978 This setting is obsolete. Before changes
980 <STRONG>o</STRONG> started with 5.9 patch 20120825 and
982 <STRONG>o</STRONG> continued though 5.9 patch 20130126
984 <EM>ncurses</EM> enabled buffered output during terminal initialization. This
985 was done (as in SVr4 curses) for performance reasons. For testing
986 purposes, both of <EM>ncurses</EM> and certain applications, this feature was
987 made optional. Setting the <EM>NCURSES</EM><STRONG>_</STRONG><EM>NO</EM><STRONG>_</STRONG><EM>SETBUF</EM> variable disabled output
988 buffering, leaving the output in the original (usually line buffered)
991 In the current implementation, <EM>ncurses</EM> performs its own buffering and
992 does not require this workaround. It does not modify the buffering of
995 The reason for the change was to make the behavior for interrupts and
996 other signals more robust. One drawback is that certain
997 nonconventional programs would mix ordinary <STRONG>stdio(3)</STRONG> calls with <EM>ncurses</EM>
998 calls and (usually) work. This is no longer possible since <EM>ncurses</EM> is
999 not using the buffered standard output but its own output (to the same
1000 file descriptor). As a special case, the low-level calls such as <STRONG>putp</STRONG>
1001 still use the standard output. But high-level curses calls do not.
1004 </PRE><H3><a name="h3-NCURSES_NO_UTF8_ACS"><EM>NCURSES_NO_UTF8_ACS</EM></a></H3><PRE>
1005 During initialization, the <EM>ncurses</EM> library checks for special cases
1006 where VT100 line-drawing (and the corresponding alternate character set
1007 capabilities) described in the terminfo are known to be missing.
1008 Specifically, when running in a UTF-8 locale, the Linux console
1009 emulator and the GNU screen program ignore these. <EM>ncurses</EM> <EM>checks</EM> <EM>the</EM>
1010 <EM>TERM</EM> <EM>environment</EM> <EM>variable</EM> <EM>for</EM> <EM>these.</EM> <EM>For</EM> <EM>other</EM> <EM>special</EM> <EM>cases,</EM> <EM>you</EM>
1011 <EM>should</EM> <EM>set</EM> <EM>this</EM> <EM>environment</EM> <EM>variable.</EM> <EM>Doing</EM> <EM>this</EM> <EM>tells</EM> <EM>ncurses</EM> <EM>to</EM> <EM>use</EM>
1012 <EM>Unicode</EM> <EM>values</EM> <EM>which</EM> <EM>correspond</EM> <EM>to</EM> <EM>the</EM> <EM>VT100</EM> <EM>line-drawing</EM> <EM>glyphs.</EM> <EM>That</EM>
1013 <EM>works</EM> <EM>for</EM> <EM>the</EM> <EM>special</EM> <EM>cases</EM> <EM>cited,</EM> <EM>and</EM> <EM>is</EM> <EM>likely</EM> <EM>to</EM> <EM>work</EM> <EM>for</EM> <EM>terminal</EM>
1016 When setting this variable, you should set it to a nonzero value.
1017 Setting it to zero (or to a nonnumber) disables the special check for
1018 "linux" and "screen".
1020 As an alternative to the environment variable, <EM>ncurses</EM> checks for an
1021 extended terminfo capability <STRONG>U8</STRONG>. This is a numeric capability which
1022 can be compiled using <STRONG>tic</STRONG> <STRONG>-x</STRONG>. For example
1024 # linux console, if patched to provide working
1025 # VT100 shift-in/shift-out, with corresponding font.
1026 linux-vt100|linux console with VT100 line-graphics,
1029 # uxterm with vt100Graphics resource set to false
1030 xterm-utf8|xterm relying on UTF-8 line-graphics,
1033 The name "U8" is chosen to be two characters, to permit it to be used
1034 by applications that use <EM>ncurses</EM>' termcap interface.
1037 </PRE><H3><a name="h3-NCURSES_TRACE"><EM>NCURSES_TRACE</EM></a></H3><PRE>
1038 During initialization, the <EM>ncurses</EM> debugging library checks the
1039 <EM>NCURSES</EM><STRONG>_</STRONG><EM>TRACE</EM> environment variable. If it is defined, to a numeric
1040 value, <EM>ncurses</EM> calls the <STRONG>trace</STRONG> function, using that value as the
1043 The argument values, which are defined in <STRONG>curses.h</STRONG>, provide several
1044 types of information. When running with traces enabled, your
1045 application will write the file <STRONG>trace</STRONG> to the current directory.
1047 See <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG> for more information.
1050 </PRE><H3><a name="h3-TERM"><EM>TERM</EM></a></H3><PRE>
1051 Denotes your terminal type. Each terminal type is distinct, though
1054 <EM>TERM</EM> is commonly set by terminal emulators to help applications find a
1055 workable terminal description. Some of those choose a popular
1056 approximation, e.g., "ansi", "vt100", "xterm" rather than an exact fit.
1057 Not infrequently, your application will have problems with that
1058 approach, e.g., incorrect function-key definitions.
1060 If you set <EM>TERM</EM> in your environment, it has no effect on the operation
1061 of the terminal emulator. It only affects the way applications work
1062 within the terminal. Likewise, as a general rule (<STRONG>xterm(1)</STRONG> being a
1063 rare exception), terminal emulators which allow you to specify <EM>TERM</EM> as
1064 a parameter or configuration value do not change their behavior to
1068 </PRE><H3><a name="h3-TERMCAP"><EM>TERMCAP</EM></a></H3><PRE>
1069 If the <EM>ncurses</EM> library has been configured with <EM>termcap</EM> support,
1070 <EM>ncurses</EM> will check for a terminal's description in termcap form if it
1071 is not available in the terminfo database.
1073 The <EM>TERMCAP</EM> environment variable contains either a terminal description
1074 (with newlines stripped out), or a file name telling where the
1075 information denoted by the <EM>TERM</EM> environment variable exists. In either
1076 case, setting it directs <EM>ncurses</EM> to ignore the usual place for this
1077 information, e.g., /etc/termcap.
1080 </PRE><H3><a name="h3-TERMINFO"><EM>TERMINFO</EM></a></H3><PRE>
1081 <EM>ncurses</EM> can be configured to read from multiple terminal databases.
1082 The <EM>TERMINFO</EM> variable overrides the location for the default terminal
1083 database. Terminal descriptions (in terminal format) are stored in
1086 <STRONG>o</STRONG> Normally these are stored in a directory tree, using subdirectories
1087 named by the first letter of the terminal names therein.
1089 This is the scheme used in System V, which legacy Unix systems use,
1090 and the <EM>TERMINFO</EM> variable is used by <EM>curses</EM> applications on those
1091 systems to override the default location of the terminal database.
1093 <STRONG>o</STRONG> If <EM>ncurses</EM> is built to use hashed databases, then each entry in
1094 this list may be the path of a hashed database file, e.g.,
1096 /usr/share/terminfo.db
1100 /usr/share/terminfo/
1102 The hashed database uses less disk-space and is a little faster
1103 than the directory tree. However, some applications assume the
1104 existence of the directory tree, reading it directly rather than
1105 using the terminfo library calls.
1107 <STRONG>o</STRONG> If <EM>ncurses</EM> is built with a support for reading termcap files
1108 directly, then an entry in this list may be the path of a termcap
1111 <STRONG>o</STRONG> If the <EM>TERMINFO</EM> variable begins with "hex:" or "b64:", <EM>ncurses</EM> uses
1112 the remainder of that variable as a compiled terminal description.
1113 You might produce the base64 format using <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>:
1115 TERMINFO="$(infocmp -0 -Q2 -q)"
1118 The compiled description is used if it corresponds to the terminal
1119 identified by the <EM>TERM</EM> variable.
1121 Setting <EM>TERMINFO</EM> is the simplest, but not the only way to set location
1122 of the default terminal database. The complete list of database
1123 locations in order follows:
1125 <STRONG>o</STRONG> the last terminal database to which <EM>ncurses</EM> wrote, if any, is
1128 <STRONG>o</STRONG> the location specified by the <EM>TERMINFO</EM> environment variable
1130 <STRONG>o</STRONG> $HOME/.terminfo
1132 <STRONG>o</STRONG> locations listed in the <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM> environment variable
1134 <STRONG>o</STRONG> one or more locations whose names are configured and compiled
1135 into the <EM>ncurses</EM> library, i.e.,
1137 <STRONG>o</STRONG> /usr/share/terminfo (corresponding to the <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM>
1140 <STRONG>o</STRONG> /usr/share/terminfo (corresponding to the <EM>TERMINFO</EM> variable)
1143 </PRE><H3><a name="h3-TERMINFO_DIRS"><EM>TERMINFO_DIRS</EM></a></H3><PRE>
1144 Specifies a list of locations to search for terminal descriptions.
1145 Each location in the list is a terminal database as described in the
1146 section on the <EM>TERMINFO</EM> variable. The list is separated by colons
1147 (i.e., ":") on Unix, semicolons on OS/2 EMX.
1149 There is no corresponding feature in System V terminfo; it is an
1150 extension developed for <EM>ncurses</EM>.
1153 </PRE><H3><a name="h3-TERMPATH"><EM>TERMPATH</EM></a></H3><PRE>
1154 If <EM>TERMCAP</EM> does not hold a file name then <EM>ncurses</EM> checks the <EM>TERMPATH</EM>
1155 environment variable. This is a list of filenames separated by spaces
1156 or colons (i.e., ":") on Unix, semicolons on OS/2 EMX.
1158 If the <EM>TERMPATH</EM> environment variable is not set, <EM>ncurses</EM> looks in the
1161 /etc/termcap, /usr/share/misc/termcap and $HOME/.termcap,
1165 The library may be configured to disregard the following variables when
1166 the current user is the superuser (root), or if the application uses
1167 setuid or setgid permissions:
1169 $TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as $HOME.
1172 </PRE><H2><a name="h2-ALTERNATE-CONFIGURATIONS">ALTERNATE CONFIGURATIONS</a></H2><PRE>
1173 Many different <EM>ncurses</EM> configurations are possible, determined by the
1174 options given to the <EM>configure</EM> script when building the library. Run
1175 the script with the <STRONG>--help</STRONG> option to peruse them all. A few are of
1176 particular significance to the application developer employing <EM>ncurses.</EM>
1179 The standard include for <EM>ncurses</EM> is as noted in <STRONG>SYNOPSIS</STRONG>:
1181 <STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
1183 This option is used to avoid filename conflicts when <EM>ncurses</EM> is
1184 not the main implementation of curses of the computer. If <EM>ncurses</EM>
1185 is installed disabling overwrite, it puts its headers in a
1188 <STRONG>#include</STRONG> <STRONG><ncurses/curses.h></STRONG>
1190 It also omits a symbolic link which would allow you to use
1191 <STRONG>-lcurses</STRONG> to build executables.
1194 The configure script renames the library and (if the
1195 <STRONG>--disable-overwrite</STRONG> option is used) puts the header files in a
1196 different subdirectory. All of the library names have a "w"
1197 appended to them, i.e., instead of
1199 <STRONG>-lncurses</STRONG>
1203 <STRONG>-lncursesw</STRONG>
1205 You must also enable the wide-character features in the header
1206 file when compiling for the wide-character library to use the
1207 extended (wide-character) functions. The symbol which enables
1208 these features has changed since XSI Curses, Issue 4:
1210 <STRONG>o</STRONG> Originally, the wide-character feature required the symbol
1211 <STRONG>_XOPEN_SOURCE_EXTENDED</STRONG> but that was only valid for XPG4
1214 <STRONG>o</STRONG> Later, that was deemed conflicting with <STRONG>_XOPEN_SOURCE</STRONG> defined
1217 <STRONG>o</STRONG> As of mid-2018, none of the features in this implementation
1218 require a <STRONG>_XOPEN_SOURCE</STRONG> feature greater than 600. However,
1219 X/Open Curses, Issue 7 (2009) recommends defining it to 700.
1221 <STRONG>o</STRONG> Alternatively, you can enable the feature by defining
1222 <STRONG>NCURSES_WIDECHAR</STRONG> with the caveat that some other header file
1223 than <STRONG>curses.h</STRONG> may require a specific value for <STRONG>_XOPEN_SOURCE</STRONG>
1224 (or a system-specific symbol).
1226 The <EM>curses.h</EM> header file installed for the wide-character library
1227 is designed to be compatible with the non-wide library's header.
1228 Only the size of the <EM>WINDOW</EM> structure differs; few applications
1229 require more than pointers to <EM>WINDOW</EM>s.
1231 If the headers are installed allowing overwrite, the wide-
1232 character library's headers should be installed last, to allow
1233 applications to be built using either library from the same set of
1237 The configure script renames the library. All of the library
1238 names have a "t" appended to them (before any "w" added by
1239 <STRONG>--enable-widec</STRONG>).
1241 The global variables such as <STRONG>LINES</STRONG> are replaced by macros to allow
1242 read-only access. At the same time, setter-functions are provided
1243 to set these values. Some applications (very few) may require
1244 changes to work with this convention.
1253 The shared and normal (static) library names differ by their
1254 suffixes, e.g., <STRONG>libncurses.so</STRONG> and <STRONG>libncurses.a</STRONG>. The debug and
1255 profiling libraries add a "_g" and a "_p" to the root names
1256 respectively, e.g., <STRONG>libncurses_g.a</STRONG> and <STRONG>libncurses_p.a</STRONG>.
1259 Low-level functions which do not depend upon whether the library
1260 supports wide-characters, are provided in the tinfo library.
1262 By doing this, it is possible to share the tinfo library between
1263 wide/normal configurations as well as reduce the size of the
1264 library when only low-level functions are needed.
1266 Those functions are described in these pages:
1268 <STRONG>o</STRONG> <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG> - miscellaneous <EM>curses</EM> extensions
1270 <STRONG>o</STRONG> <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> - <EM>curses</EM> input options
1272 <STRONG>o</STRONG> <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG> - low-level <EM>curses</EM> routines
1274 <STRONG>o</STRONG> <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG> - <EM>curses</EM> environment query routines
1276 <STRONG>o</STRONG> <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG> - <EM>curses</EM> emulation of <EM>termcap</EM>
1278 <STRONG>o</STRONG> <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> - <EM>curses</EM> interface to <EM>terminfo</EM> database
1280 <STRONG>o</STRONG> <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> - miscellaneous <EM>curses</EM> utility routines
1283 The <STRONG>trace</STRONG> function normally resides in the debug library, but it
1284 is sometimes useful to configure this in the shared library.
1285 Configure scripts should check for the function's existence rather
1286 than assuming it is always in the debug library.
1289 </PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
1290 <EM>/usr/share/tabset</EM>
1291 tab stop initialization database
1293 <EM>/usr/share/terminfo</EM>
1294 compiled terminal capability database
1297 </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
1298 X/Open Curses permits most functions it specifies to be made available
1299 as macros as well. <EM>ncurses</EM> does so
1301 <STRONG>o</STRONG> for functions that return values via their parameters,
1303 <STRONG>o</STRONG> to support obsolete features,
1305 <STRONG>o</STRONG> to reuse functions (for example, those that move the cursor before
1306 another operation), and
1308 <STRONG>o</STRONG> a few special cases.
1310 If the standard output file descriptor of an <EM>ncurses</EM> program is
1311 redirected to something that is not a terminal device, the library
1312 writes screen updates to the standard error file descriptor. This was
1313 an undocumented feature of SVr3.
1315 See subsection "Header files" below regarding symbols exposed by
1316 inclusion of <EM>curses.h</EM>.
1319 </PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
1320 <EM>ncurses</EM> enables an application to capture mouse events on certain
1321 terminals, including <EM>xterm;</EM> see <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>.
1323 <EM>ncurses</EM> provides a means of responding to window resizing events, as
1324 when running in a GUI terminal emulator application such as <EM>xterm;</EM> see
1325 <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> and <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>.
1327 <EM>ncurses</EM> allows an application to query the terminal for the presence of
1328 a wide variety of special keys; see <STRONG><A HREF="curs_getch.3x.html">has_key(3x)</A></STRONG>.
1330 <EM>ncurses</EM> extends the fixed set of function key capabilities specified by
1331 X/Open Curses by allowing the application programmer to define
1332 additional key sequences at runtime; see <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>,
1333 <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>, and <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>.
1335 <EM>ncurses</EM> can exploit the capabilities of terminals implementing
1336 ISO 6429/ECMA-48 SGR 39 and SGR 49 sequences, which allow an
1337 application to reset the terminal to its original foreground and
1338 background colors. From a user's perspective, the application is able
1339 to draw colored text on a background whose color is set independently,
1340 providing better control over color contrasts. See <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>.
1342 An <EM>ncurses</EM> application can choose to hide the internal details of
1343 <EM>WINDOW</EM> structures, instead using accessor functions such as
1344 <STRONG><A HREF="curs_opaque.3x.html">is_scrollok(3x)</A></STRONG>.
1346 <EM>ncurses</EM> enables an application to direct application output to a
1347 printer attached to the terminal device; see <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>.
1349 <EM>ncurses</EM> offers <STRONG><A HREF="curs_slk.3x.html">slk_attr(3x)</A></STRONG> as a counterpart of <STRONG><A HREF="curs_attr.3x.html">attr_get(3x)</A></STRONG> for soft-
1350 label key lines, and <STRONG><A HREF="curs_slk.3x.html">extended_slk_color(3x)</A></STRONG> as a form of <STRONG><A HREF="curs_slk.3x.html">slk_color(3x)</A></STRONG>
1351 that can gather color information from them when many colors are
1354 Some extensions are only available if <EM>ncurses</EM> is compiled to support
1355 them; see section "ALTERNATE CONFIGURATIONS" above.
1357 <STRONG>o</STRONG> Rudimentary support for multi-threaded applications may be
1358 available; see <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>.
1360 <STRONG>o</STRONG> Functions that ease the management of multiple screens can be
1361 exposed; see <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>.
1363 <STRONG>o</STRONG> The compiler option <STRONG>-DUSE_GETCAP</STRONG> causes the library to fall back to
1364 reading <EM>/etc/termcap</EM> if the terminal setup code cannot find a <EM>term-</EM>
1365 <EM>info</EM> entry corresponding to <EM>TERM.</EM> Use of this feature is not
1366 recommended, as it essentially includes an entire <EM>termcap</EM> compiler
1367 in the <EM>ncurses</EM> startup code, at a cost in memory usage and
1368 application launch latency.
1370 <EM>PDCurses</EM> and NetBSD <EM>curses</EM> incorporate some <EM>ncurses</EM> extensions.
1371 Individual man pages indicate where this is the case.
1374 </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
1375 X/Open Curses defines two levels of conformance, "base" and "enhanced".
1376 The latter includes several additional features, such as wide-character
1377 and color support. <EM>ncurses</EM> intends base-level conformance with X/Open
1378 Curses, and supports nearly all its enhanced features.
1380 Differences between X/Open Curses and <EM>ncurses</EM> are documented in the
1381 "PORTABILITY" sections of applicable man pages.
1384 </PRE><H3><a name="h3-Error-Checking">Error Checking</a></H3><PRE>
1385 In many cases, X/Open Curses is vague about error conditions, omitting
1386 some of the SVr4 documentation.
1388 Unlike other implementations, this one checks parameters such as
1389 pointers to <EM>WINDOW</EM> structures to ensure they are not null. The main
1390 reason for providing this behavior is to guard against programmer
1391 error. The standard interface does not provide a way for the library
1392 to tell an application which of several possible errors were detected.
1393 Relying on this (or some other) extension will adversely affect the
1394 portability of curses applications.
1397 </PRE><H3><a name="h3-Padding-Differences">Padding Differences</a></H3><PRE>
1398 In historic curses versions, delays embedded in the capabilities <STRONG>cr</STRONG>,
1399 <STRONG>ind</STRONG>, <STRONG>cub1</STRONG>, <STRONG>ff</STRONG> and <STRONG>tab</STRONG> activated corresponding delay bits in the Unix
1400 tty driver. In this implementation, all padding is done by sending NUL
1401 bytes. This method is slightly more expensive, but narrows the
1402 interface to the Unix kernel significantly and increases the package's
1403 portability correspondingly.
1406 </PRE><H3><a name="h3-Header-Files">Header Files</a></H3><PRE>
1407 The header file <EM>curses.h</EM> itself includes the header files <EM>stdio.h</EM> and
1410 X/Open Curses has more to say, but does not finish the story:
1412 The inclusion of <curses.h> may make visible all symbols from the
1413 headers <stdio.h>, <term.h>, <termios.h>, and <wchar.h>.
1415 Here is a more complete story:
1417 <STRONG>o</STRONG> Starting with BSD curses, all implementations have included
1420 BSD curses included <curses.h> and <unctrl.h> from an internal
1421 header file <EM>curses.ext</EM> ("ext" abbreviated "externs").
1423 BSD curses used <stdio.h> internally (for <STRONG>printw</STRONG> and <STRONG>scanw</STRONG>), but
1424 nothing in <curses.h> itself relied upon <stdio.h>.
1426 <STRONG>o</STRONG> SVr2 curses added <STRONG><A HREF="curs_initscr.3x.html">newterm(3x)</A></STRONG>, which relies upon <stdio.h>. That
1427 is, the function prototype uses <STRONG>FILE</STRONG>.
1429 SVr4 curses added <STRONG>putwin</STRONG> and <STRONG>getwin</STRONG>, which also use <stdio.h>.
1431 X/Open Curses documents all three of these functions.
1433 SVr4 curses and X/Open Curses do not require the developer to
1434 include <stdio.h> before including <curses.h>. Both document
1435 curses showing <curses.h> as the only required header.
1437 As a result, standard <curses.h> will always include <stdio.h>.
1439 <STRONG>o</STRONG> X/Open Curses is inconsistent with respect to SVr4 regarding
1442 As noted in <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <EM>ncurses</EM> includes <unctrl.h> from
1443 <curses.h> (like SVr4).
1445 <STRONG>o</STRONG> X/Open's comments about <term.h> and <termios.h> may refer to HP-UX
1448 HP-UX curses includes <term.h> from <curses.h> to declare <STRONG>setupterm</STRONG>
1449 in curses.h, but <EM>ncurses</EM> (and Solaris curses) do not.
1451 AIX curses includes <term.h> and <termios.h>. Again, <EM>ncurses</EM> (and
1452 Solaris curses) do not.
1454 <STRONG>o</STRONG> X/Open says that <curses.h> <EM>may</EM> include <term.h>, but there is no
1455 requirement that it do that.
1457 Some programs use functions declared in both <curses.h> and
1458 <term.h>, and must include both headers in the same module. Very
1459 old versions of AIX curses required including <curses.h> before
1460 including <term.h>.
1462 Because <EM>ncurses</EM> header files include the headers needed to define
1463 datatypes used in the headers, <EM>ncurses</EM> header files can be included
1464 in any order. But for portability, you should include <curses.h>
1465 before <term.h>.
1467 <STRONG>o</STRONG> X/Open Curses says <EM>"may</EM> <EM>make</EM> <EM>visible"</EM> because including a header
1468 file does not necessarily make all symbols in it visible (there are
1469 ifdef's to consider).
1471 For instance, in <EM>ncurses</EM> <wchar.h> <EM>may</EM> be included if the proper
1472 symbol is defined, and if <EM>ncurses</EM> is configured for wide-character
1473 support. If the header is included, its symbols may be made
1474 visible. That depends on the value used for <STRONG>_XOPEN_SOURCE</STRONG> feature
1477 <STRONG>o</STRONG> X/Open Curses documents one required header, in a special case:
1478 <stdarg.h> before <curses.h> to prototype the <STRONG>vw_printw</STRONG> and
1479 <STRONG>vw_scanw</STRONG> functions (as well as the obsolete the <STRONG>vwprintw</STRONG> and
1480 <STRONG>vwscanw</STRONG> functions). Each of those uses a <STRONG>va_list</STRONG> parameter.
1482 The two obsolete functions were introduced in SVr3. The other
1483 functions were introduced in X/Open Curses. In between, SVr4
1484 curses provided for the possibility that an application might
1485 include either <varargs.h> or <stdarg.h>. Initially, that was done
1486 by using <STRONG>void*</STRONG> for the <STRONG>va_list</STRONG> parameter. Later, a special type
1487 (defined in <stdio.h>) was introduced, to allow for compiler type-
1488 checking. That special type is always available, because <stdio.h>
1489 is always included by <curses.h>.
1491 None of the X/Open Curses implementations require an application to
1492 include <stdarg.h> before <curses.h> because they either have
1493 allowed for a special type, or (like <EM>ncurses</EM>) include <stdarg.h>
1494 directly to provide a portable interface.
1497 </PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
1498 Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey. Based on <EM>pcurses</EM>
1502 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
1503 <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>
1507 ncurses 6.4 2024-01-05 <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
1511 <li><a href="#h2-NAME">NAME</a></li>
1512 <li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
1513 <li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
1515 <li><a href="#h3-Initialization">Initialization</a></li>
1516 <li><a href="#h3-Overview">Overview</a></li>
1517 <li><a href="#h3-Effects-of-GUIs-and-Environment-Variables">Effects of GUIs and Environment Variables</a></li>
1518 <li><a href="#h3-Naming-Conventions">Naming Conventions</a></li>
1519 <li><a href="#h3-Wide-and-Non-wide-Character-Configurations">Wide and Non-wide Character Configurations</a></li>
1520 <li><a href="#h3-Function-Name-Index">Function Name Index</a></li>
1523 <li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
1524 <li><a href="#h2-ENVIRONMENT">ENVIRONMENT</a>
1526 <li><a href="#h3-CC-command-character">CC command-character</a></li>
1527 <li><a href="#h3-BAUDRATE">BAUDRATE</a></li>
1528 <li><a href="#h3-COLUMNS">COLUMNS</a></li>
1529 <li><a href="#h3-ESCDELAY">ESCDELAY</a></li>
1530 <li><a href="#h3-HOME">HOME</a></li>
1531 <li><a href="#h3-LINES">LINES</a></li>
1532 <li><a href="#h3-MOUSE_BUTTONS_123">MOUSE_BUTTONS_123</a></li>
1533 <li><a href="#h3-NCURSES_ASSUMED_COLORS">NCURSES_ASSUMED_COLORS</a></li>
1534 <li><a href="#h3-NCURSES_CONSOLE2">NCURSES_CONSOLE2</a></li>
1535 <li><a href="#h3-NCURSES_GPM_TERMS">NCURSES_GPM_TERMS</a></li>
1536 <li><a href="#h3-NCURSES_NO_HARD_TABS">NCURSES_NO_HARD_TABS</a></li>
1537 <li><a href="#h3-NCURSES_NO_MAGIC_COOKIE">NCURSES_NO_MAGIC_COOKIE</a></li>
1538 <li><a href="#h3-NCURSES_NO_PADDING">NCURSES_NO_PADDING</a></li>
1539 <li><a href="#h3-NCURSES_NO_SETBUF">NCURSES_NO_SETBUF</a></li>
1540 <li><a href="#h3-NCURSES_NO_UTF8_ACS">NCURSES_NO_UTF8_ACS</a></li>
1541 <li><a href="#h3-NCURSES_TRACE">NCURSES_TRACE</a></li>
1542 <li><a href="#h3-TERM">TERM</a></li>
1543 <li><a href="#h3-TERMCAP">TERMCAP</a></li>
1544 <li><a href="#h3-TERMINFO">TERMINFO</a></li>
1545 <li><a href="#h3-TERMINFO_DIRS">TERMINFO_DIRS</a></li>
1546 <li><a href="#h3-TERMPATH">TERMPATH</a></li>
1549 <li><a href="#h2-ALTERNATE-CONFIGURATIONS">ALTERNATE CONFIGURATIONS</a></li>
1550 <li><a href="#h2-FILES">FILES</a></li>
1551 <li><a href="#h2-NOTES">NOTES</a></li>
1552 <li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
1553 <li><a href="#h2-PORTABILITY">PORTABILITY</a>
1555 <li><a href="#h3-Error-Checking">Error Checking</a></li>
1556 <li><a href="#h3-Padding-Differences">Padding Differences</a></li>
1557 <li><a href="#h3-Header-Files">Header Files</a></li>
1560 <li><a href="#h2-AUTHORS">AUTHORS</a></li>
1561 <li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>