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