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