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