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.214 2024/04/27 17:55:43 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-04-27 ncurses 6.5 Library calls</TITLE>
39 <link rel="author" href="mailto:bug-ncurses@gnu.org">
43 <H1 class="no-header">ncurses 3x 2024-04-27 ncurses 6.5 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 document describes <EM>ncurses</EM> version 6.5 (patch 20240427).
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> capability access; a <EM>termcap</EM> compatibility interface;
71 and an abstraction of the system's API for manipulating the terminal
72 (such as <STRONG>termios(3)</STRONG>).
74 <EM>ncurses</EM> implements the standard interface described by X/Open Curses
75 Issue 7. In many behavioral details not standardized by X/Open,
76 <EM>ncurses</EM> emulates the <EM>curses</EM> library of SVr4 and provides numerous
79 <EM>ncurses</EM> man pages employ several sections to clarify matters of usage
80 and interoperability with other <EM>curses</EM> implementations.
82 <STRONG>o</STRONG> "NOTES" describes issues and caveats of which any user of the
83 <EM>ncurses</EM> API should be aware, such as limitations on the size of an
84 underlying integral type or the availability of a preprocessor
85 macro exclusive of a function definition (which prevents its
86 address from being taken). This section also describes
87 implementation details that will be significant to the programmer
88 but which are not standardized.
90 <STRONG>o</STRONG> "EXTENSIONS" presents <EM>ncurses</EM> innovations beyond the X/Open Curses
91 standard and/or the SVr4 <EM>curses</EM> implementation. They are termed
92 <EM>extensions</EM> to indicate that they cannot be implemented solely by
93 using the library API, but require access to the library's internal
96 <STRONG>o</STRONG> "PORTABILITY" discusses matters (beyond the exercise of extensions)
97 that should be considered when writing to a <EM>curses</EM> standard, or for
98 multiple implementations.
100 <STRONG>o</STRONG> "HISTORY" examines points of detail in <EM>ncurses</EM> and other <EM>curses</EM>
101 implementations over the decades of their development, particularly
102 where precedent or inertia have frustrated better design (and, in a
103 few cases, where such inertia has been overcome).
105 A <EM>curses</EM> application must be linked with the library; use the <STRONG>-lncurses</STRONG>
106 option to your compiler or linker. A debugging version of the library
107 may be available; if so, link with it using <STRONG>-lncurses_g</STRONG>. (Your system
108 integrator may have installed these libraries such that you can use the
109 options <STRONG>-lcurses</STRONG> and <STRONG>-lcurses_g</STRONG>, respectively.) The <EM>ncurses</EM><STRONG>_</STRONG><EM>g</EM> library
110 generates trace logs (in a file called <EM>trace</EM> in the current directory)
111 that describe <EM>ncurses</EM> actions. See section "ALTERNATE CONFIGURATIONS"
115 </PRE><H3><a name="h3-Application-Structure">Application Structure</a></H3><PRE>
116 A <EM>curses</EM> application uses information from the system locale;
117 <STRONG>setlocale(3)</STRONG> prepares it for <EM>curses</EM> library calls.
119 setlocale(LC_ALL, "");
121 If the locale is not thus initialized, the library assumes that
122 characters are printable as in ISO 8859-1, to work with certain legacy
123 programs. You should initialize the locale; do not expect consistent
124 behavior from the library when the locale has not been set up.
126 <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG> or <STRONG><A HREF="curs_initscr.3x.html">newterm(3x)</A></STRONG> must be called to initialize <EM>curses</EM> before
127 use of any functions that deal with windows and screens.
129 To get character-at-a-time input without echoing--most interactive,
130 screen-oriented programs want this--use the following sequence.
132 initscr(); cbreak(); noecho();
134 Most applications perform further setup as follows.
136 intrflush(stdscr, FALSE);
137 keypad(stdscr, TRUE);
139 A <EM>curses</EM> program then often enters an event loop of some sort. Call
140 <STRONG><A HREF="curs_initscr.3x.html">endwin(3x)</A></STRONG> before exiting.
143 </PRE><H3><a name="h3-Overview">Overview</a></H3><PRE>
144 A <EM>curses</EM> library abstracts the terminal screen by representing all or
145 part of it as a <EM>WINDOW</EM> data structure. A <EM>window</EM> is a rectangular grid
146 of character cells, addressed by row and column coordinates (<EM>y</EM>, <EM>x</EM>),
147 with the upper left corner as (0, 0). A window called <STRONG>stdscr</STRONG>, the same
148 size as the terminal screen, is always available. Create others with
149 <STRONG><A HREF="curs_window.3x.html">newwin(3x)</A></STRONG>.
151 A <EM>curses</EM> library does not manage overlapping windows (but see below).
152 You can either use <STRONG>stdscr</STRONG> to manage one screen-filling window, or tile
153 the screen into non-overlapping windows and not use <STRONG>stdscr</STRONG> at all.
154 Mixing the two approaches will result in unpredictable and undesired
157 Functions permit manipulation of a window and the <EM>cursor</EM> identifying
158 the cell within it at which the next output operation will occur.
159 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
160 cursor and write a character to <STRONG>stdscr</STRONG>, respectively.
162 Frequent changes to the terminal screen can cause unpleasant flicker or
163 inefficient use of the communication channel to the device, so the
164 library does not generally update it automatically. Therefore, after
165 using <EM>curses</EM> functions to accumulate a set of desired updates that make
166 sense to present together, call <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG> to tell the library to make
167 the user's screen look like <STRONG>stdscr</STRONG>. The library <EM>optimizes</EM> its output
168 by computing a minimal number of operations to mutate the screen from
169 its state at the previous refresh to the new one. Effective
170 optimization demands accurate information about the terminal device:
171 the management of such information is the province of the <STRONG><A HREF="curs_terminfo.3x.html">terminfo(3x)</A></STRONG>
172 API, a feature of every standard <EM>curses</EM> implementation.
174 Special windows called <EM>pads</EM> may also be manipulated. These are windows
175 that are not constrained to the size of the terminal screen and whose
176 contents need not be completely displayed. See <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>.
178 In addition to drawing characters on the screen, rendering attributes
179 and colors may be supported, causing the characters to show up in such
180 modes as underlined, in reverse video, or in color on terminals that
181 support such display enhancements. See <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>.
183 <EM>curses</EM> predefines constants for a small set of forms-drawing graphics
184 corresponding to the DEC Alternate Character Set (ACS), a feature of
185 VT100 and other terminals. See <STRONG><A HREF="curs_addch.3x.html">waddch(3x)</A></STRONG>.
187 <EM>curses</EM> is implemented using the operating system's terminal driver;
188 keystroke events are received not as scan codes but as byte sequences.
189 Graphical keycaps (alphanumeric and punctuation keys, and the space)
190 appear as-is. Everything else, including the tab, enter/return,
191 keypad, arrow, and function keys, appears as a control character or a
192 multibyte <EM>escape</EM> <EM>sequence.</EM> <EM>curses</EM> translates these into unique <EM>key</EM>
193 <EM>codes.</EM> See <STRONG><A HREF="curs_getch.3x.html">getch(3x)</A></STRONG>.
195 <EM>ncurses</EM> provides reimplementations of the SVr4 <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>, and
196 <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG> libraries to ease construction of user interfaces with <EM>curses</EM>.
199 </PRE><H3><a name="h3-Initialization">Initialization</a></H3><PRE>
200 The selection of an appropriate value of <EM>TERM</EM> in the process
201 environment is essential to correct <EM>curses</EM> and <EM>terminfo</EM> library
202 operation. A well-configured system selects a correct <EM>TERM</EM> value
203 automatically; <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG> may assist with troubleshooting exotic
206 If you change the terminal type, export the <EM>TERM</EM> environment variable
207 in the shell, then run <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG> or the "<STRONG>tput</STRONG> <STRONG>init</STRONG>" command. See
208 subsection "Tabs and Initialization" of <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
210 If the environment variables <EM>LINES</EM> and <EM>COLUMNS</EM> are set, or if the
211 <EM>curses</EM> program is executing in a graphical windowing environment, the
212 information obtained thence overrides that obtained by <EM>terminfo</EM>. An
213 <EM>ncurses</EM> extension supports resizable terminals; see <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>.
215 If the environment variable <EM>TERMINFO</EM> is defined, a <EM>curses</EM> program
216 checks first for a terminal type description in the location it
217 identifies. <EM>TERMINFO</EM> is useful for developing experimental type
218 descriptions or when write permission to <EM>/usr/share/terminfo</EM> is not
221 See section "ENVIRONMENT" below.
224 </PRE><H3><a name="h3-Naming-Conventions">Naming Conventions</a></H3><PRE>
225 <EM>curses</EM> offers many functions in variant forms using a regular set of
226 alternatives to the name of an elemental one. Those prefixed with "w"
227 require a <EM>WINDOW</EM> pointer argument; those with a "mv" prefix first
228 perform cursor movement using <STRONG><A HREF="curs_move.3x.html">wmove(3x)</A></STRONG>; a "mvw" prefix indicates both.
229 The "w" function is typically the elemental one; the removal of this
230 prefix usually indicates operation on <STRONG>stdscr</STRONG>.
232 Four functions prefixed with "p" require a pad argument.
234 In function synopses, <EM>ncurses</EM> man pages apply the following names to
237 <EM>bf</EM> <EM>bool</EM> (<STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>)
238 <EM>c</EM> a <EM>char</EM> or <EM>int</EM>
239 <EM>ch</EM> a <EM>chtype</EM>
240 <EM>wc</EM> a <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM> or <EM>wint</EM><STRONG>_</STRONG><EM>t</EM>
241 <EM>wch</EM> a <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>
242 <EM>win</EM> pointer to a <EM>WINDOW</EM>
243 <EM>pad</EM> pointer to a <EM>WINDOW</EM> that is a pad
246 </PRE><H3><a name="h3-Wide-and-Non-wide-Character-Configurations">Wide and Non-wide Character Configurations</a></H3><PRE>
247 This manual page describes functions that appear in any configuration
248 of the library. There are two common configurations; see section
249 "ALTERNATE CONFIGURATIONS" below.
251 <EM>ncurses</EM> is the library in its "non-wide" configuration, handling only
252 eight-bit characters. It stores a character combined with
253 attributes in a <EM>chtype</EM> datum, which is often an alias of <EM>int</EM>.
255 Attributes alone (with no corresponding character) can be
256 stored in variables of <EM>chtype</EM> or <EM>attr</EM><STRONG>_</STRONG><EM>t</EM> type. In either
257 case, they are represented as an integral bit mask.
259 Each cell of a <EM>WINDOW</EM> is stored as a <EM>chtype</EM>.
261 <EM>ncursesw</EM> is the library in its "wide" configuration, which handles
262 character encodings requiring a larger data type than <EM>char</EM> (a
263 byte-sized type) can represent. It adds about one third more
264 calls using additional data types that can store such
265 <EM>multibyte</EM> characters.
267 <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM> corresponds to the non-wide configuration's <EM>chtype</EM>.
268 It always a structure type, because it stores more
269 data than fit into a standard scalar type. A
270 character code may not be representable as a <EM>char</EM>,
271 and moreover more than one character may occupy a
272 cell (as with accent marks and other diacritics).
273 Each character is of type <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM>; a complex
274 character contains one spacing character and zero or
275 more non-spacing characters (see below). Attributes
276 and color data are stored in separate fields of the
277 structure, not combined as in <EM>chtype</EM>.
279 Each cell of a <EM>WINDOW</EM> is stored as a <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>.
281 <STRONG><A HREF="curs_getcchar.3x.html">setcchar(3x)</A></STRONG> and <STRONG><A HREF="curs_getcchar.3x.html">getcchar(3x)</A></STRONG> store and retrieve <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>
282 data. The wide library API of <EM>ncurses</EM> depends on two data
283 types standardized by ISO C95.
285 <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM> stores a wide character. Like <EM>chtype</EM>, it may be an
286 alias of <EM>int</EM>. Depending on the character encoding,
287 a wide character may be <EM>spacing</EM>, meaning that it
288 occupies a character cell by itself and typically
289 accompanies cursor advancement, or <EM>non-spacing</EM>,
290 meaning that it occupies the same cell as a spacing
291 character, is often regarded as a "modifier" of the
292 base glyph with which it combines, and typically
293 does not advance the cursor.
295 <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>,
296 analogously to the <EM>int</EM>-sized character manipulation
297 functions of ISO C and its constant <STRONG>EOF</STRONG>.
299 The wide library provides additional functions that
300 complement those in the non-wide library where the size of
301 the underlying character type is significant. A somewhat
302 regular naming convention relates many of the wide variants
303 to their non-wide counterparts; where a non-wide function
304 name contains "ch" or "str", prefix it with "_w" to obtain
305 the wide counterpart. For example, <STRONG>waddch</STRONG> becomes <STRONG>wadd_wch</STRONG>.
306 (Exceptions that add only "w" comprise <STRONG>addwstr</STRONG>, <STRONG>inwstr</STRONG>, and
309 This convention is inapplicable to some non-wide function
310 names, so other transformations are used for the wide
311 configuration: the window background management function
312 "bkgd" becomes "bkgrnd"; the window border-drawing and
313 -clearing functions are suffixed with "_set"; and character
314 attribute manipulation functions like "attron" become
318 </PRE><H3><a name="h3-Function-Name-Index">Function Name Index</a></H3><PRE>
319 The following table lists the <EM>curses</EM> functions provided in the non-wide
320 and wide APIs and the corresponding man pages that describe them.
321 Those flagged with "*" are <EM>ncurses</EM>-specific, neither described by
322 X/Open Curses nor present in SVr4.
324 <STRONG><EM>curses</EM></STRONG> Function Name Man Page
325 ---------------------------------------------
326 COLOR_PAIR <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
327 PAIR_NUMBER <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
328 add_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
329 add_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
330 add_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
331 addch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
332 addchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
333 addchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
334 addnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
335 addnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
336 addstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
337 addwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
338 alloc_pair <STRONG><A HREF="new_pair.3x.html">new_pair(3x)</A></STRONG>*
339 assume_default_colors <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>*
340 attr_get <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
341 attr_off <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
342 attr_on <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
343 attr_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
344 attroff <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
345 attron <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
346 attrset <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
347 baudrate <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
348 beep <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
349 bkgd <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
350 bkgdset <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
351 bkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
352 bkgrndset <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
353 border <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
354 border_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
355 box <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
356 box_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
357 can_change_color <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
358 cbreak <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
359 chgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
360 clear <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
361 clearok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
362 clrtobot <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
363 clrtoeol <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
364 color_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
365 color_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
366 copywin <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
367 curs_set <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
368 curses_trace <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
369 curses_version <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>*
370 def_prog_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
371 def_shell_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
372 define_key <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>*
373 del_curterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
374 delay_output <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
375 delch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
376 deleteln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
377 delscreen <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
378 delwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
379 derwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
380 doupdate <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
381 dupwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
382 echo <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
384 echo_wchar <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
385 echochar <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
386 endwin <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
387 erase <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
388 erasechar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
389 erasewchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
390 exit_curses <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>*
391 exit_terminfo <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>*
392 extended_color_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
393 extended_pair_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
394 extended_slk_color <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>*
395 filter <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
396 find_pair <STRONG><A HREF="new_pair.3x.html">new_pair(3x)</A></STRONG>*
397 flash <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
398 flushinp <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
399 free_pair <STRONG><A HREF="new_pair.3x.html">new_pair(3x)</A></STRONG>*
400 get_escdelay <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>*
401 get_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
402 get_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
403 getattrs <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
404 getbegx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
405 getbegy <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
406 getbegyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
407 getbkgd <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
408 getbkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
409 getcchar <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
410 getch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
411 getcurx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
412 getcury <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
413 getmaxx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
414 getmaxy <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
415 getmaxyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
416 getmouse <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
417 getn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
418 getnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
419 getparx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
420 getpary <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
421 getparyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
422 getstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
423 getsyx <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
424 getwin <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
425 getyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
426 halfdelay <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
427 has_colors <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
428 has_ic <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
429 has_il <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
430 has_key <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>*
431 has_mouse <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
432 hline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
433 hline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
434 idcok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
435 idlok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
436 immedok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
437 in_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
438 in_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
439 in_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
440 inch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
441 inchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
442 inchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
443 init_color <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
444 init_extended_color <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
445 init_extended_pair <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
446 init_pair <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
447 initscr <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
448 innstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
450 innwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
451 ins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
452 ins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
453 ins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
454 insch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
455 insdelln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
456 insertln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
457 insnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
458 insstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
459 instr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
460 intrflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
461 inwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
462 is_cbreak <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>*
463 is_cleared <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
464 is_echo <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>*
465 is_idcok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
466 is_idlok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
467 is_immedok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
468 is_keypad <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
469 is_leaveok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
470 is_linetouched <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
471 is_nl <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>*
472 is_nodelay <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
473 is_notimeout <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
474 is_pad <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
475 is_raw <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>*
476 is_scrollok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
477 is_subwin <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
478 is_syncok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
479 is_term_resized <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>*
480 is_wintouched <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
481 isendwin <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
482 key_defined <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>*
483 key_name <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
484 keybound <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>*
485 keyname <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
486 keyok <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>*
487 keypad <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
488 killchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
489 killwchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
490 leaveok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
491 longname <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
492 mcprint <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>*
493 meta <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
494 mouse_trafo <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
495 mouseinterval <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
496 mousemask <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
497 move <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
498 mvadd_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
499 mvadd_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
500 mvadd_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
501 mvaddch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
502 mvaddchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
503 mvaddchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
504 mvaddnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
505 mvaddnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
506 mvaddstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
507 mvaddwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
508 mvchgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
509 mvcur <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
510 mvdelch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
511 mvderwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
512 mvget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
513 mvget_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
514 mvgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
516 mvgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
517 mvgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
518 mvgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
519 mvhline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
520 mvhline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
521 mvin_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
522 mvin_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
523 mvin_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
524 mvinch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
525 mvinchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
526 mvinchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
527 mvinnstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
528 mvinnwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
529 mvins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
530 mvins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
531 mvins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
532 mvinsch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
533 mvinsnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
534 mvinsstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
535 mvinstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
536 mvinwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
537 mvprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
538 mvscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
539 mvvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
540 mvvline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
541 mvwadd_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
542 mvwadd_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
543 mvwadd_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
544 mvwaddch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
545 mvwaddchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
546 mvwaddchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
547 mvwaddnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
548 mvwaddnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
549 mvwaddstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
550 mvwaddwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
551 mvwchgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
552 mvwdelch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
553 mvwget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
554 mvwget_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
555 mvwgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
556 mvwgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
557 mvwgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
558 mvwgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
559 mvwhline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
560 mvwhline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
561 mvwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
562 mvwin_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
563 mvwin_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
564 mvwin_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
565 mvwinch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
566 mvwinchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
567 mvwinchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
568 mvwinnstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
569 mvwinnwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
570 mvwins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
571 mvwins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
572 mvwins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
573 mvwinsch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
574 mvwinsnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
575 mvwinsstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
576 mvwinstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
577 mvwinwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
578 mvwprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
579 mvwscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
580 mvwvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
582 mvwvline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
583 napms <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
584 newpad <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
585 newterm <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
586 newwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
587 nl <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
588 nocbreak <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
589 nodelay <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
590 noecho <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
591 nofilter <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>*
592 nonl <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
593 noqiflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
594 noraw <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
595 notimeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
596 overlay <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
597 overwrite <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
598 pair_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
599 pecho_wchar <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
600 pechochar <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
601 pnoutrefresh <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
602 prefresh <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
603 printw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
604 putp <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
605 putwin <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
606 qiflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
607 raw <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
608 redrawwin <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
609 refresh <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
610 reset_color_pairs <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
611 reset_prog_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
612 reset_shell_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
613 resetty <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
614 resize_term <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>*
615 resizeterm <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>*
616 restartterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
617 ripoffline <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
618 savetty <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
619 scanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
620 scr_dump <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
621 scr_init <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
622 scr_restore <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
623 scr_set <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
624 scrl <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
625 scroll <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
626 scrollok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
627 set_curterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
628 set_escdelay <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>*
629 set_tabsize <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>*
630 set_term <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
631 setcchar <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
632 setscrreg <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
633 setsyx <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
634 setupterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
635 slk_attr <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>*
636 slk_attr_off <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
637 slk_attr_on <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
638 slk_attr_set <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
639 slk_attroff <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
640 slk_attron <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
641 slk_attrset <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
642 slk_clear <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
643 slk_color <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
644 slk_init <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
645 slk_label <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
646 slk_noutrefresh <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
648 slk_refresh <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
649 slk_restore <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
650 slk_set <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
651 slk_touch <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
652 slk_wset <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
653 standend <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
654 standout <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
655 start_color <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
656 subpad <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
657 subwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
658 syncok <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
659 term_attrs <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
660 termattrs <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
661 termname <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
662 tgetent <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
663 tgetflag <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
664 tgetnum <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
665 tgetstr <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
666 tgoto <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
667 tigetflag <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
668 tigetnum <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
669 tigetstr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
670 timeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
671 tiparm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
672 tiparm_s <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>*
673 tiscan_s <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>*
674 touchline <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
675 touchwin <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
676 tparm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
677 tputs <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
678 tputs <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
679 trace <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
680 typeahead <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
681 unctrl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
682 unget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
683 ungetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
684 ungetmouse <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
685 untouchwin <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
686 use_default_colors <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>*
687 use_env <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
688 use_extended_names <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>*
689 use_legacy_coding <STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG>*
690 use_screen <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>*
691 use_tioctl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>*
692 use_window <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>*
693 vid_attr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
694 vid_puts <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
695 vidattr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
696 vidputs <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
697 vline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
698 vline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
699 vw_printw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
700 vw_scanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
701 vwprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
702 vwscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
703 wadd_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
704 wadd_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
705 wadd_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
706 waddch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
707 waddchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
708 waddchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
709 waddnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
710 waddnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
711 waddstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
712 waddwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
714 wattr_get <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
715 wattr_off <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
716 wattr_on <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
717 wattr_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
718 wattroff <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
719 wattron <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
720 wattrset <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
721 wbkgd <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
722 wbkgdset <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
723 wbkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
724 wbkgrndset <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
725 wborder <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
726 wborder_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
727 wchgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
728 wclear <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
729 wclrtobot <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
730 wclrtoeol <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
731 wcolor_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
732 wcursyncup <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
733 wdelch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
734 wdeleteln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
735 wecho_wchar <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
736 wechochar <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
737 wenclose <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
738 werase <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
739 wget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
740 wget_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
741 wgetbkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
742 wgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
743 wgetdelay <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
744 wgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
745 wgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
746 wgetparent <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
747 wgetscrreg <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
748 wgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
749 whline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
750 whline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
751 win_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
752 win_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
753 win_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
754 winch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
755 winchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
756 winchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
757 winnstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
758 winnwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
759 wins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
760 wins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
761 wins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
762 winsch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
763 winsdelln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
764 winsertln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
765 winsnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
766 winsstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
767 winstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
768 winwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
769 wmouse_trafo <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
770 wmove <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
771 wnoutrefresh <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
772 wprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
773 wredrawln <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
774 wrefresh <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
775 wresize <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>*
776 wscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
777 wscrl <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
778 wsetscrreg <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
780 wstandend <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
781 wstandout <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
782 wsyncdown <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
783 wsyncup <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
784 wtimeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
785 wtouchln <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
786 wunctrl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
787 wvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
788 wvline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
790 <EM>ncurses</EM>'s <EM>screen-pointer</EM> <EM>extension</EM> adds additional functions
791 corresponding to many of the above, each with an "_sp" suffix; see
792 <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>.
794 The availability of some extensions is configurable when <EM>ncurses</EM> is
795 compiled; see sections "ALTERNATE CONFIGURATIONS" and "EXTENSIONS"
799 </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
800 Unless otherwise noted, functions that return an integer return <STRONG>OK</STRONG> on
801 success and <STRONG>ERR</STRONG> on failure. Functions that return pointers return <STRONG>NULL</STRONG>
802 on failure. Typically, <EM>ncurses</EM> treats a null pointer passed as a
803 function parameter as a failure. Functions prefixed with "mv" first
804 perform cursor movement and fail if the position (<EM>y</EM>, <EM>x</EM>) is outside the
808 </PRE><H2><a name="h2-ENVIRONMENT">ENVIRONMENT</a></H2><PRE>
809 The following symbols from the process environment customize the
810 runtime behavior of <EM>ncurses</EM> applications. The library may be
811 configured to disregard the variables <EM>TERMINFO</EM>, <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM>,
812 <EM>TERMPATH</EM>, and <EM>HOME</EM>, if the user is the superuser (root), or the
813 application uses <STRONG>setuid(2)</STRONG> or <STRONG>setgid(2)</STRONG>.
816 </PRE><H3><a name="h3-BAUDRATE"><EM>BAUDRATE</EM></a></H3><PRE>
817 The debugging library checks this variable when the application has
818 redirected output to a file. Its integral value is used for the baud
819 rate. If that value is absent or invalid, <EM>ncurses</EM> uses 9600. This
820 feature allows testers to construct repeatable test cases that take
821 into account optimization decisions that depend on baud rate.
824 </PRE><H3><a name="h3-CC-_command-character_"><EM>CC</EM> (command character)</a></H3><PRE>
825 When set, the <STRONG>command_character</STRONG> (<STRONG>cmdch</STRONG>) capability value of loaded
826 <EM>terminfo</EM> entries changes to the value of this variable. Very few <EM>term-</EM>
827 <EM>info</EM> entries provide this feature.
829 Because this name is also used in development environments to represent
830 the C compiler's name, <EM>ncurses</EM> ignores its value if it is not one
834 </PRE><H3><a name="h3-COLUMNS"><EM>COLUMNS</EM></a></H3><PRE>
835 This variable specifies the width of the screen in characters.
836 Applications running in a windowing environment usually are able to
837 obtain the width of the window in which they are executing. If <EM>COLUMNS</EM>
838 is not defined and the terminal's screen size is not available from the
839 terminal driver, <EM>ncurses</EM> uses the size specified by the <STRONG>columns</STRONG> (<STRONG>cols</STRONG>)
840 capability of the terminal type's entry in the <EM>terminfo</EM> database, if
843 It is important that your application use the correct screen size.
844 Automatic detection thereof is not always possible because an
845 application may be running on a host that does not honor NAWS
846 (Negotiations About Window Size) or as a different user ID than the
847 owner of the terminal device file. Setting <EM>COLUMNS</EM> and/or <EM>LINES</EM>
848 overrides the library's use of the screen size obtained from the
851 The <EM>COLUMNS</EM> and <EM>LINES</EM> variables may be specified independently. This
852 property is useful to circumvent misfeatures of legacy terminal type
853 descriptions; <STRONG>xterm(1)</STRONG> descriptions specifying 65 lines were once
854 notorious. For best results, avoid specifying <STRONG>cols</STRONG> and <STRONG>lines</STRONG>
855 capability codes in <EM>terminfo</EM> descriptions of terminal emulators.
857 <STRONG><A HREF="curs_util.3x.html">use_env(3x)</A></STRONG> can disable use of the process environment in determining
858 the screen size. <STRONG><A HREF="curs_util.3x.html">use_tioctl(3x)</A></STRONG> can update <EM>COLUMNS</EM> and <EM>LINES</EM> to match
859 the screen size obtained from system calls or the terminal database.
862 </PRE><H3><a name="h3-ESCDELAY"><EM>ESCDELAY</EM></a></H3><PRE>
863 For <EM>curses</EM> to distinguish the ESC character resulting from a user's
864 press of the "Escape" key on the input device from one beginning an
865 <EM>escape</EM> <EM>sequence</EM> (as commonly produced by function keys), it waits after
866 receiving the escape character to see if further characters are
867 available on the input stream within a short interval. A global
868 variable <STRONG>ESCDELAY</STRONG> stores this interval in milliseconds. The default
869 value of 1000 (one second) is adequate for most uses. This environment
870 variable overrides it.
872 The most common instance where you may wish to change this value is to
873 work with a remote host over a slow communication channel. If the host
874 running a <EM>curses</EM> application does not receive the characters of an
875 escape sequence in a timely manner, the library can interpret them as
876 multiple key stroke events.
878 <STRONG>xterm(1)</STRONG> mouse events are a form of escape sequence; therefore, if your
879 application makes heavy use of multiple-clicking, you may wish to
880 lengthen the default value because the delay applies to the composite
881 multi-click event as well as the individual clicks.
883 Portable applications should not rely upon the presence of <STRONG>ESCDELAY</STRONG> in
884 either form, but setting the environment variable rather than the
885 global variable does not create problems when compiling an application.
887 If <STRONG><A HREF="curs_inopts.3x.html">keypad(3x)</A></STRONG> is disabled for the <EM>curses</EM> window receiving input, a
888 program must disambiguate escape sequences itself.
891 </PRE><H3><a name="h3-HOME"><EM>HOME</EM></a></H3><PRE>
892 <EM>ncurses</EM> may read and write auxiliary terminal descriptions in <EM>.termcap</EM>
893 and <EM>.terminfo</EM> files in the user's home directory.
896 </PRE><H3><a name="h3-LINES"><EM>LINES</EM></a></H3><PRE>
897 This counterpart to <EM>COLUMNS</EM> specifies the height of the screen in
898 characters. The corresponding <EM>terminfo</EM> capability and code is <STRONG>lines</STRONG>.
899 See the description of the <EM>COLUMNS</EM> variable above.
902 </PRE><H3><a name="h3-MOUSE_BUTTONS_123"><EM>MOUSE_BUTTONS_123</EM></a></H3><PRE>
903 (OS/2 EMX port only) OS/2 numbers a three-button mouse inconsistently
904 with other platforms, such that 1 is the left button, 2 the right, and
905 3 the middle. This variable customizes the mouse button numbering.
906 Its value must be three digits 1-3 in any order. By default, <EM>ncurses</EM>
907 assumes a numbering of "132".
910 </PRE><H3><a name="h3-NCURSES_ASSUMED_COLORS"><EM>NCURSES_ASSUMED_COLORS</EM></a></H3><PRE>
911 If set, this variable overrides the <EM>ncurses</EM> library's compiled-in
912 assumption that the terminal's default colors are white on black; see
913 <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>. Set the foreground and background color values
914 with this environment variable by assigning it two integer values
915 separated by a comma, indicating foregound and background color
916 numbers, respectively.
918 For example, to tell <EM>ncurses</EM> not to assume anything about the colors,
919 use a value of "-1,-1". To make the default color scheme green on
920 black, use "2,0". <EM>ncurses</EM> accepts integral values from -1 up to the
921 value of the <EM>terminfo</EM> <STRONG>max_colors</STRONG> (<STRONG>colors</STRONG>) capability.
924 </PRE><H3><a name="h3-NCURSES_CONSOLE2"><EM>NCURSES_CONSOLE2</EM></a></H3><PRE>
925 (MinGW port only) The <EM>Console2</EM> program defectively handles the
926 Microsoft Console API call <EM>CreateConsoleScreenBuffer</EM>. Applications
927 that use it will hang. However, it is possible to simulate the action
928 of this call by mapping coordinates, explicitly saving and restoring
929 the original screen contents. Setting the environment variable <EM>NCGDB</EM>
933 </PRE><H3><a name="h3-NCURSES_GPM_TERMS"><EM>NCURSES_GPM_TERMS</EM></a></H3><PRE>
934 (Linux only) When <EM>ncurses</EM> is configured to use the GPM interface, this
935 variable may list one or more terminal names against which the <EM>TERM</EM>
936 variable (see below) is matched. An empty value disables the GPM
937 interface, using <EM>ncurses</EM>'s built-in support for <STRONG>xterm(1)</STRONG> mouse
938 protocols instead. If the variable is absent, <EM>ncurses</EM> attempts to open
939 GPM if <EM>TERM</EM> contains "linux".
942 </PRE><H3><a name="h3-NCURSES_NO_HARD_TABS"><EM>NCURSES_NO_HARD_TABS</EM></a></H3><PRE>
943 <EM>ncurses</EM> may use tab characters in cursor movement optimization. In
944 some cases, your terminal driver may not handle them properly. Set
945 this environment variable to any value to disable the feature. You can
946 also adjust your <STRONG>stty(1)</STRONG> settings to avoid the problem.
949 </PRE><H3><a name="h3-NCURSES_NO_MAGIC_COOKIE"><EM>NCURSES_NO_MAGIC_COOKIE</EM></a></H3><PRE>
950 Many terminals store video attributes as a property of a character
951 cell, as <EM>curses</EM> does. Historically, some recorded changes in video
952 attributes as data that logically <EM>occupies</EM> character cells on the
953 display, switching attributes on or off, similarly to tags in a markup
954 language; these are termed "magic cookies", and must be subsequently
955 overprinted. If the <EM>terminfo</EM> entry for your terminal type does not
956 adequately describe its handling of magic cookies, set this variable to
957 any value to instruct <EM>ncurses</EM> to disable attributes entirely.
960 </PRE><H3><a name="h3-NCURSES_NO_PADDING"><EM>NCURSES_NO_PADDING</EM></a></H3><PRE>
961 Most terminal type descriptions in the <EM>terminfo</EM> database detail
962 hardware devices. Many people use <EM>curses</EM>-based applications in
963 terminal emulator programs that run in a windowing environment. These
964 programs can duplicate all of the important features of a hardware
965 terminal, but often lack their limitations. Chief among these absent
966 drawbacks is the problem of data flow management; that is, limiting the
967 speed of communication to what the hardware could handle. Unless a
968 hardware terminal is interfaced into a terminal concentrator (which
969 does flow control), an application must manage flow control itself to
970 prevent overruns and data loss.
972 A solution that comes at no hardware cost is for an application to
973 pause after directing a terminal to execute an operation that it
974 performs slowly, such as clearing the display. Many terminal type
975 descriptions, including that for the VT100, embed delay specifications
976 in capabilities. You may wish to use these terminal descriptions
977 without paying the performance penalty. Set <EM>NCURSES</EM><STRONG>_</STRONG><EM>NO</EM><STRONG>_</STRONG><EM>PADDING</EM> to any
978 value to disable all but mandatory padding. Mandatory padding is used
979 by such terminal capabilities as <STRONG>flash_screen</STRONG> (<STRONG>flash</STRONG>).
982 </PRE><H3><a name="h3-NCURSES_NO_SETBUF"><EM>NCURSES_NO_SETBUF</EM></a></H3><PRE>
983 (Obsolete) Prior to internal changes developed in <EM>ncurses</EM> 5.9 (patches
984 20120825 through 20130126), the library used <STRONG>setbuf(3)</STRONG> to enable fully
985 buffered output when initializing the terminal. This was done, as in
986 SVr4 <EM>curses</EM>, to increase performance. For testing purposes, both of
987 <EM>ncurses</EM> and of certain applications, this feature was made optional.
988 Setting this variable disabled output buffering, leaving the output
989 stream in the original (usually line-buffered) mode.
991 Nowadays, <EM>ncurses</EM> performs its own buffering and does not require this
992 workaround; it does not modify the buffering of the standard output
993 stream. This approach makes signal handling, as for interrupts, more
994 robust. A drawback is that certain unconventional programs mixed
995 <STRONG>stdio(3)</STRONG> calls with <EM>ncurses</EM> calls and (usually) got the behavior they
996 expected. This is no longer the case; <EM>ncurses</EM> does not write to the
997 standard output file descriptor through a <EM>stdio</EM>-buffered stream.
999 As a special case, low-level API calls such as <STRONG><A HREF="curs_terminfo.3x.html">putp(3x)</A></STRONG> still use the
1000 standard output stream. High-level <EM>curses</EM> calls such as <STRONG><A HREF="curs_printw.3x.html">printw(3x)</A></STRONG> do
1004 </PRE><H3><a name="h3-NCURSES_NO_UTF8_ACS"><EM>NCURSES_NO_UTF8_ACS</EM></a></H3><PRE>
1005 At initialization, <EM>ncurses</EM> inspects the <EM>TERM</EM> environment variable for
1006 special cases where VT100 forms-drawing characters (and the
1007 corresponding alternate character set <EM>terminfo</EM> capabilities) are known
1008 to be unsupported by terminal types that otherwise claim VT100
1009 compatibility. Specifically, when running in a UTF-8 locale, the Linux
1010 virtual console device and the GNU <STRONG>screen(1)</STRONG> program ignore them. Set
1011 this variable to a nonzero value to instruct <EM>ncurses</EM> that the
1012 terminal's ACS support is broken; the library then outputs Unicode code
1013 points that correspond to the forms-drawing characters. Set it to zero
1014 (or a non-integer) to disable the special check for terminal type names
1015 matching "linux" or "screen", directing <EM>ncurses</EM> to assume that the ACS
1016 feature works if the terminal type description advertises it.
1018 As an alternative to use of this variable, <EM>ncurses</EM> checks for an
1019 extended <EM>terminfo</EM> numeric capability <STRONG>U8</STRONG> that can be compiled using "<STRONG>tic</STRONG>
1020 <STRONG>-x</STRONG>". Examples follow.
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 two-character name "U8" was chosen to permit its use via <EM>ncurses</EM>'s
1032 <EM>termcap</EM> interface.
1035 </PRE><H3><a name="h3-NCURSES_TRACE"><EM>NCURSES_TRACE</EM></a></H3><PRE>
1036 At initialization, <EM>ncurses</EM> (in its debugging configuration) checks for
1037 this variable's presence. If defined with an integral value, the
1038 library calls <STRONG><A HREF="curs_trace.3x.html">curses_trace(3x)</A></STRONG> with that value as the argument.
1041 </PRE><H3><a name="h3-TERM"><EM>TERM</EM></a></H3><PRE>
1042 The <EM>TERM</EM> variable denotes the terminal type. Each is distinct, though
1043 many are similar. It is commonly set by terminal emulators to help
1044 applications find a workable terminal description. Some choose a
1045 popular approximation such as "ansi", "vt100", or "xterm" rather than
1046 an exact fit to their capabilities. Not infrequently, an application
1047 will have problems with that approach; for example, a key stroke may
1048 not operate correctly, or produce no effect but seeming garbage
1049 characters on the screen.
1051 Setting <EM>TERM</EM> has no effect on hardware operation; it affects the way
1052 applications communicate with the terminal. Likewise, as a general
1053 rule (<STRONG>xterm(1)</STRONG> being a rare exception), terminal emulators that allow
1054 you to specify <EM>TERM</EM> as a parameter or configuration value do not change
1055 their behavior to match that setting.
1058 </PRE><H3><a name="h3-TERMCAP"><EM>TERMCAP</EM></a></H3><PRE>
1059 If <EM>ncurses</EM> is configured with <EM>termcap</EM> support, it checks for a terminal
1060 type description in <EM>termcap</EM> format if one in <EM>terminfo</EM> format is not
1061 available. Setting this variable directs <EM>ncurses</EM> to ignore the usual
1062 <EM>termcap</EM> database location, <EM>/etc/termcap</EM>; see <EM>TERMPATH</EM> below. <EM>TERMCAP</EM>
1063 should contain either a terminal description (with newlines stripped
1064 out), or a file name indicating where the information required by the
1065 <EM>TERM</EM> environment variable is stored.
1068 </PRE><H3><a name="h3-TERMINFO"><EM>TERMINFO</EM></a></H3><PRE>
1069 <EM>ncurses</EM> can be configured to read terminal type description databases
1070 in various locations using different formats. This variable overrides
1071 the default location.
1073 <STRONG>o</STRONG> Descriptions in <EM>terminfo</EM> format are normally stored in a directory
1074 tree using subdirectories named by the common first letters of the
1075 terminal types named therein. This is the scheme used in System V.
1077 <STRONG>o</STRONG> If <EM>ncurses</EM> is configured to use hashed databases, then <EM>TERMINFO</EM> may
1078 name its location, such as <EM>/usr/share/terminfo.db</EM>, rather than
1079 <EM>/usr/share/terminfo/</EM>.
1081 The hashed database uses less disk space and is a little faster than
1082 the directory tree. However, some applications assume the existence of
1083 the directory tree, and read it directly rather than using the <EM>terminfo</EM>
1086 <STRONG>o</STRONG> If <EM>ncurses</EM> is configured with <EM>termcap</EM> support, this variable may
1087 contain the location of a <EM>termcap</EM> file.
1089 <STRONG>o</STRONG> If the value of <EM>TERMINFO</EM> begins with "hex:" or "b64:", <EM>ncurses</EM> uses
1090 the remainder of the value as a compiled <EM>terminfo</EM> description. You
1091 might produce the base64 format using <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>.
1093 TERMINFO=$(infocmp -0 -Q2 -q)
1096 The compiled description is used only if it corresponds to the
1097 terminal type identified by <EM>TERM</EM>.
1099 Setting <EM>TERMINFO</EM> is the simplest, but not the only, way to direct
1100 <EM>ncurses</EM> to a terminal database. The search path is as follows.
1102 <STRONG>o</STRONG> the last terminal database to which the running <EM>ncurses</EM> application
1105 <STRONG>o</STRONG> the location specified by the <EM>TERMINFO</EM> environment variable
1107 <STRONG>o</STRONG> <EM>$HOME/.terminfo</EM>
1109 <STRONG>o</STRONG> locations listed in the <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM> environment variable
1111 <STRONG>o</STRONG> location(s) configured and compiled into <EM>ncurses</EM>
1113 <STRONG>o</STRONG> <EM>/usr/share/terminfo</EM>
1116 </PRE><H3><a name="h3-TERMINFO_DIRS"><EM>TERMINFO_DIRS</EM></a></H3><PRE>
1117 This variable specifies a list of locations, akin to <EM>PATH</EM>, in which
1118 <EM>ncurses</EM> searches for the terminal type descriptions described by
1119 <EM>TERMINFO</EM> above. The list items are separated by colons on Unix and
1120 semicolons on OS/2 EMX. System V <EM>terminfo</EM> lacks a corresponding
1121 feature; <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM> is an <EM>ncurses</EM> extension.
1124 </PRE><H3><a name="h3-TERMPATH"><EM>TERMPATH</EM></a></H3><PRE>
1125 If <EM>TERMCAP</EM> does not hold a terminal type description or file name, then
1126 <EM>ncurses</EM> checks the contents of <EM>TERMPATH</EM>, a list of locations, akin to
1127 <EM>PATH</EM>, in which it searches for <EM>termcap</EM> terminal type descriptions. The
1128 list items are separated by colons on Unix and semicolons on OS/2 EMX.
1130 If both <EM>TERMCAP</EM> and <EM>TERMPATH</EM> are unset or invalid, <EM>ncurses</EM> searches for
1131 the files <EM>/etc/termcap</EM>, <EM>/usr/share/misc/termcap</EM>, and <EM>$HOME/.termcap</EM>, in
1135 </PRE><H2><a name="h2-ALTERNATE-CONFIGURATIONS">ALTERNATE CONFIGURATIONS</a></H2><PRE>
1136 Many different <EM>ncurses</EM> configurations are possible, determined by the
1137 options given to the <EM>configure</EM> script when building the library. Run
1138 the script with the <STRONG>--help</STRONG> option to peruse them all. A few are of
1139 particular significance to the application developer employing <EM>ncurses</EM>.
1141 <STRONG>--disable-overwrite</STRONG>
1142 The standard include for <EM>ncurses</EM> is as noted in <STRONG>SYNOPSIS</STRONG>:
1144 <STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
1146 This option is used to avoid filename conflicts when <EM>ncurses</EM> is
1147 not the main implementation of curses of the computer. If <EM>ncurses</EM>
1148 is installed disabling overwrite, it puts its headers in a
1151 <STRONG>#include</STRONG> <STRONG><ncurses/curses.h></STRONG>
1153 It also omits a symbolic link which would allow you to use
1154 <STRONG>-lcurses</STRONG> to build executables.
1156 <STRONG>--enable-widec</STRONG>
1157 The configure script renames the library and (if the
1158 <STRONG>--disable-overwrite</STRONG> option is used) puts the header files in a
1159 different subdirectory. All of the library names have a "w"
1160 appended to them, i.e., instead of
1162 <STRONG>-lncurses</STRONG>
1166 <STRONG>-lncursesw</STRONG>
1168 You must also enable the wide-character features in the header
1169 file when compiling for the wide-character library to use the
1170 extended (wide-character) functions. The symbol which enables
1171 these features has changed since X/Open Curses, Issue 4:
1173 <STRONG>o</STRONG> Originally, the wide-character feature required the symbol
1174 <STRONG>_XOPEN_SOURCE_EXTENDED</STRONG> but that was only valid for XPG4
1177 <STRONG>o</STRONG> Later, that was deemed conflicting with <STRONG>_XOPEN_SOURCE</STRONG> defined
1180 <STRONG>o</STRONG> As of mid-2018, none of the features in this implementation
1181 require a <STRONG>_XOPEN_SOURCE</STRONG> feature greater than 600. However,
1182 X/Open Curses, Issue 7 (2009) recommends defining it to 700.
1184 <STRONG>o</STRONG> Alternatively, you can enable the feature by defining
1185 <STRONG>NCURSES_WIDECHAR</STRONG> with the caveat that some other header file
1186 than <STRONG>curses.h</STRONG> may require a specific value for <STRONG>_XOPEN_SOURCE</STRONG>
1187 (or a system-specific symbol).
1189 The <EM>curses.h</EM> header file installed for the wide-character library
1190 is designed to be compatible with the non-wide library's header.
1191 Only the size of the <EM>WINDOW</EM> structure differs; few applications
1192 require more than pointers to <EM>WINDOW</EM>s.
1194 If the headers are installed allowing overwrite, the wide-
1195 character library's headers should be installed last, to allow
1196 applications to be built using either library from the same set of
1199 <STRONG>--with-pthread</STRONG>
1200 The configure script renames the library. All of the library
1201 names have a "t" appended to them (before any "w" added by
1202 <STRONG>--enable-widec</STRONG>).
1204 The global variables such as <STRONG>LINES</STRONG> are replaced by macros to allow
1205 read-only access. At the same time, setter-functions are provided
1206 to set these values. Some applications (very few) may require
1207 changes to work with this convention.
1209 <STRONG>--with-shared</STRONG>
1210 <STRONG>--with-normal</STRONG>
1211 <STRONG>--with-debug</STRONG>
1212 <STRONG>--with-profile</STRONG>
1213 The shared and normal (static) library names differ by their
1214 suffixes, e.g., <STRONG>libncurses.so</STRONG> and <STRONG>libncurses.a</STRONG>. The debug and
1215 profiling libraries add a "_g" and a "_p" to the root names
1216 respectively, e.g., <STRONG>libncurses_g.a</STRONG> and <STRONG>libncurses_p.a</STRONG>.
1218 <STRONG>--with-termlib</STRONG>
1219 Low-level functions which do not depend upon whether the library
1220 supports wide-characters, are provided in the tinfo library.
1222 By doing this, it is possible to share the tinfo library between
1223 wide/normal configurations as well as reduce the size of the
1224 library when only low-level functions are needed.
1226 Those functions are described in these pages:
1228 <STRONG>o</STRONG> <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG> - miscellaneous <EM>curses</EM> extensions
1230 <STRONG>o</STRONG> <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> - <EM>curses</EM> input options
1232 <STRONG>o</STRONG> <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG> - low-level <EM>curses</EM> routines
1234 <STRONG>o</STRONG> <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG> - <EM>curses</EM> environment query routines
1236 <STRONG>o</STRONG> <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG> - <EM>curses</EM> emulation of <EM>termcap</EM>
1238 <STRONG>o</STRONG> <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> - <EM>curses</EM> interface to <EM>terminfo</EM> database
1240 <STRONG>o</STRONG> <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> - miscellaneous <EM>curses</EM> utility routines
1242 <STRONG>--with-trace</STRONG>
1243 The <STRONG>trace</STRONG> function normally resides in the debug library, but it
1244 is sometimes useful to configure this in the shared library.
1245 Configure scripts should check for the function's existence rather
1246 than assuming it is always in the debug library.
1249 </PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
1250 <EM>/usr/share/tabset</EM>
1251 tab stop initialization database
1253 <EM>/usr/share/terminfo</EM>
1254 compiled terminal capability database
1257 </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
1258 X/Open Curses permits most functions it specifies to be made available
1259 as macros as well. <EM>ncurses</EM> does so
1261 <STRONG>o</STRONG> for functions that return values via their parameters,
1263 <STRONG>o</STRONG> to support obsolete features,
1265 <STRONG>o</STRONG> to reuse functions (for example, those that move the cursor before
1266 another operation), and
1268 <STRONG>o</STRONG> a few special cases.
1270 If the standard output file descriptor of an <EM>ncurses</EM> program is
1271 redirected to something that is not a terminal device, the library
1272 writes screen updates to the standard error file descriptor. This was
1273 an undocumented feature of SVr3 <EM>curses</EM>.
1275 See subsection "Header Files" below regarding symbols exposed by
1276 inclusion of <EM>curses.h</EM>.
1279 </PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
1280 <EM>ncurses</EM> enables an application to capture mouse events on certain
1281 terminals, including <STRONG>xterm(1)</STRONG>; see <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>.
1283 <EM>ncurses</EM> provides a means of responding to window resizing events, as
1284 when running in a GUI terminal emulator application such as <EM>xterm</EM>; see
1285 <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> and <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>.
1287 <EM>ncurses</EM> allows an application to query the terminal for the presence of
1288 a wide variety of special keys; see <STRONG><A HREF="curs_getch.3x.html">has_key(3x)</A></STRONG>.
1290 <EM>ncurses</EM> extends the fixed set of function key capabilities specified by
1291 X/Open Curses by allowing the application programmer to define
1292 additional key events at runtime; see <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>, <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>,
1293 <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>, and <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>.
1295 <EM>ncurses</EM> can exploit the capabilities of terminals implementing
1296 ISO 6429/ECMA-48 SGR 39 and SGR 49 sequences, which allow an
1297 application to reset the terminal to its original foreground and
1298 background colors. From a user's perspective, the application is able
1299 to draw colored text on a background whose color is set independently,
1300 providing better control over color contrasts. See <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>.
1302 An <EM>ncurses</EM> application can eschew knowledge of <EM>WINDOW</EM> structure
1303 internals, instead using accessor functions such as <STRONG><A HREF="curs_opaque.3x.html">is_scrollok(3x)</A></STRONG>.
1305 <EM>ncurses</EM> enables an application to direct application output to a
1306 printer attached to the terminal device; see <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>.
1308 <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-
1309 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>
1310 that can gather color information from them when many colors are
1313 Some extensions are available only if <EM>ncurses</EM> permits modification of
1314 <STRONG><A HREF="unctrl.3x.html">unctrl(3x)</A></STRONG>'s behavior; see <STRONG><A HREF="legacy_coding.3x.html">use_legacy_coding(3x)</A></STRONG>. <EM>ncurses</EM> is compiled
1315 to support them; section "ALTERNATE CONFIGURATIONS" describes how.
1317 <STRONG>o</STRONG> Rudimentary support for multi-threaded applications may be
1318 available; see <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>.
1320 <STRONG>o</STRONG> Functions that ease the management of multiple screens can be
1321 exposed; see <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>.
1323 <STRONG>o</STRONG> To aid applications to debug their memory usage, <EM>ncurses</EM> optionally
1324 offers functions to more aggressively free memory it dynamically
1325 allocates itself; see <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>.
1327 <STRONG>o</STRONG> The library facilitates auditing and troubleshooting of its
1328 behavior; see <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>.
1330 <STRONG>o</STRONG> The compiler option <STRONG>-DUSE_GETCAP</STRONG> causes the library to fall back to
1331 reading <EM>/etc/termcap</EM> if the terminal setup code cannot find a <EM>term-</EM>
1332 <EM>info</EM> entry corresponding to <EM>TERM</EM>. Use of this feature is not
1333 recommended, as it essentially includes an entire <EM>termcap</EM> compiler
1334 in the <EM>ncurses</EM> startup code, at a cost in memory usage and
1335 application launch latency.
1337 <EM>PDCurses</EM> and NetBSD <EM>curses</EM> incorporate some <EM>ncurses</EM> extensions.
1338 Individual man pages indicate where this is the case.
1341 </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
1342 X/Open Curses defines two levels of conformance, "base" and "enhanced".
1343 The latter includes several additional features, such as wide-character
1344 and color support. <EM>ncurses</EM> intends base-level conformance with X/Open
1345 Curses, and supports all features of its enhanced level except the
1346 <STRONG>untic</STRONG> utility.
1348 Differences between X/Open Curses and <EM>ncurses</EM> are documented in the
1349 "PORTABILITY" sections of applicable man pages.
1352 </PRE><H3><a name="h3-Error-Checking">Error Checking</a></H3><PRE>
1353 In many cases, X/Open Curses is vague about error conditions, omitting
1354 some of the SVr4 documentation.
1356 Unlike other implementations, <EM>ncurses</EM> checks pointer parameters, such
1357 as those to <EM>WINDOW</EM> structures, to ensure that they are not null. This
1358 is done primarily to guard against programmer error. The standard
1359 interface does not provide a way for the library to tell an application
1360 which of several possible errors occurred. Relying on this (or some
1361 other) extension adversely affects the portability of <EM>curses</EM>
1365 </PRE><H3><a name="h3-Padding-Differences">Padding Differences</a></H3><PRE>
1366 In historical <EM>curses</EM> implementations, delays embedded in the <EM>terminfo</EM>
1367 capabilities <STRONG>carriage_return</STRONG> (<STRONG>cr</STRONG>), <STRONG>scroll_forward</STRONG> (<STRONG>ind</STRONG>), <STRONG>cursor_left</STRONG>
1368 (<STRONG>cub1</STRONG>), <STRONG>form_feed</STRONG> (<STRONG>ff</STRONG>), and <STRONG>tab</STRONG> (<STRONG>ht</STRONG>) activated corresponding delay bits
1369 in the Unix terminal driver. <EM>ncurses</EM> performs all padding by sending
1370 NUL bytes to the device. This method is slightly more expensive, but
1371 narrows the interface to the Unix kernel significantly and
1372 correspondingly increases the package's portability.
1375 </PRE><H3><a name="h3-Header-Files">Header Files</a></H3><PRE>
1376 The header file <EM>curses.h</EM> itself includes the header files <EM>stdio.h</EM> and
1379 X/Open Curses has more to say,
1381 The inclusion of <EM>curses.h</EM> may make visible all symbols from the
1382 headers <EM>stdio.h</EM>, <EM>term.h</EM>, <EM>termios.h</EM>, and <EM>wchar.h</EM>.
1384 but does not finish the story. A more complete account follows.
1386 <STRONG>o</STRONG> Starting with 4BSD <EM>curses</EM> (1980) all implementations have provided
1387 a <EM>curses.h</EM> file.
1389 BSD <EM>curses</EM> code included <EM>curses.h</EM> and <EM>unctrl.h</EM> from an internal
1390 header file <EM>curses.ext</EM>, where "ext" abbreviated "externs".
1392 The implementations of <EM>printw</EM> and <EM>scanw</EM> used undocumented internal
1393 functions of the standard I/O library (<STRONG>_</STRONG><EM>doprnt</EM> and <STRONG>_</STRONG><EM>doscan</EM>), but
1394 nothing in <EM>curses.h</EM> itself relied upon <EM>stdio.h</EM>.
1396 <STRONG>o</STRONG> SVr2 <EM>curses</EM> added <EM>newterm</EM>, which relies upon <EM>stdio.h</EM> because its
1397 function prototype employs the <EM>FILE</EM> type.
1399 SVr4 <EM>curses</EM> added <EM>putwin</EM> and <EM>getwin</EM>, which also use <EM>stdio.h</EM>.
1401 X/Open Curses specifies all three of these functions.
1403 SVr4 <EM>curses</EM> and X/Open Curses do not require the developer to
1404 include <EM>stdio.h</EM> before <EM>curses.h</EM>. Both document use of <EM>curses</EM> as
1405 requiring only <EM>curses.h</EM>.
1407 As a result, standard <EM>curses.h</EM> always includes <EM>stdio.h</EM>.
1409 <STRONG>o</STRONG> X/Open Curses and SVr4 <EM>curses</EM> are inconsistent with respect to
1412 As noted in <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <EM>ncurses</EM> includes <EM>unctrl.h</EM> from <EM>curses.h</EM>
1415 <STRONG>o</STRONG> X/Open Curses's comments about <EM>term.h</EM> and <EM>termios.h</EM> may refer to
1418 HP-UX <EM>curses</EM> includes <EM>term.h</EM> from <EM>curses.h</EM> to declare <EM>setupterm</EM> in
1419 <EM>curses.h</EM>, but <EM>ncurses</EM> and Solaris <EM>curses</EM> do not.
1421 AIX <EM>curses</EM> includes <EM>term.h</EM> and termios.h<EM>.</EM> Again, <EM>ncurses</EM> and
1422 Solaris <EM>curses</EM> do not.
1424 <STRONG>o</STRONG> X/Open Curses says that <EM>curses.h</EM> <STRONG>may</STRONG> include <EM>term.h</EM>, but does not
1425 require it to do so.
1427 Some programs use functions declared in both <EM>curses.h</EM> and <EM>term.h</EM>,
1428 and must include both header files in the same module. Very old
1429 versions of AIX <EM>curses</EM> required inclusion of <EM>curses.h</EM> before
1432 The header files supplied by <EM>ncurses</EM> include the standard library
1433 headers required for its declarations, so <EM>ncurses</EM>'s own header
1434 files can be included in any order. But for portability, you
1435 should include <EM>curses.h</EM> before <EM>term.h</EM>.
1437 <STRONG>o</STRONG> X/Open Curses says "may make visible" because including a header
1438 file does not necessarily make visible all of the symbols in it
1439 (consider <STRONG>#ifdef</STRONG> and similar).
1441 For instance, <EM>ncurses</EM>'s <EM>curses.h</EM> <STRONG>may</STRONG> include <EM>wchar.h</EM> if the proper
1442 symbol is defined, and if <EM>ncurses</EM> is configured for wide-character
1443 support. If <EM>wchar.h</EM> is included, its symbols <STRONG>may</STRONG> be made visible
1444 depending on the value of the <STRONG>_XOPEN_SOURCE</STRONG> feature test macro.
1446 <STRONG>o</STRONG> X/Open Curses mandates an application's inclusion of one standard C
1447 library header in a special case: <EM>stdarg.h</EM> before <EM>curses.h</EM> to
1448 prototype the functions <EM>vw</EM><STRONG>_</STRONG><EM>printw</EM> and <EM>vw</EM><STRONG>_</STRONG><EM>scanw</EM> (as well as the
1449 obsolete <EM>vwprintw</EM> and <EM>vwscanw</EM>). Each of these takes a variadic
1450 argument list, a <EM>va</EM><STRONG>_</STRONG><EM>list</EM> parameter, like that of <STRONG>printf(3)</STRONG>.
1452 SVr3 <EM>curses</EM> introduced the two obsolete functions, and X/Open
1453 Curses the others. In between, SVr4 <EM>curses</EM> provided for the
1454 possibility that an application might include either <EM>varargs.h</EM> or
1455 <EM>stdarg.h</EM>. These represented contrasting approaches to handling
1456 variadic argument lists. The older interface, <EM>varargs.h</EM>, used a
1457 pointer to <EM>char</EM> for variadic functions' <EM>va</EM><STRONG>_</STRONG><EM>list</EM> parameter. Later,
1458 the list acquired its own standard data type, <EM>va</EM><STRONG>_</STRONG><EM>list</EM>, defined in
1459 <EM>stdarg.h</EM>, empowering the compiler to check the types of a function
1460 call's actual parameters against the formal ones declared in its
1463 No conforming implementations of X/Open Curses require an
1464 application to include <EM>stdarg.h</EM> before <EM>curses.h</EM> because they either
1465 have allowed for a special type, or, like <EM>ncurses</EM>, they include
1466 <EM>stdarg.h</EM> themselves to provide a portable interface.
1469 </PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
1470 Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey. Based on <EM>pcurses</EM>
1474 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
1475 <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>
1479 ncurses 6.5 2024-04-27 <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
1483 <li><a href="#h2-NAME">NAME</a></li>
1484 <li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
1485 <li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
1487 <li><a href="#h3-Application-Structure">Application Structure</a></li>
1488 <li><a href="#h3-Overview">Overview</a></li>
1489 <li><a href="#h3-Initialization">Initialization</a></li>
1490 <li><a href="#h3-Naming-Conventions">Naming Conventions</a></li>
1491 <li><a href="#h3-Wide-and-Non-wide-Character-Configurations">Wide and Non-wide Character Configurations</a></li>
1492 <li><a href="#h3-Function-Name-Index">Function Name Index</a></li>
1495 <li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
1496 <li><a href="#h2-ENVIRONMENT">ENVIRONMENT</a>
1498 <li><a href="#h3-BAUDRATE">BAUDRATE</a></li>
1499 <li><a href="#h3-CC-_command-character_">CC (command character)</a></li>
1500 <li><a href="#h3-COLUMNS">COLUMNS</a></li>
1501 <li><a href="#h3-ESCDELAY">ESCDELAY</a></li>
1502 <li><a href="#h3-HOME">HOME</a></li>
1503 <li><a href="#h3-LINES">LINES</a></li>
1504 <li><a href="#h3-MOUSE_BUTTONS_123">MOUSE_BUTTONS_123</a></li>
1505 <li><a href="#h3-NCURSES_ASSUMED_COLORS">NCURSES_ASSUMED_COLORS</a></li>
1506 <li><a href="#h3-NCURSES_CONSOLE2">NCURSES_CONSOLE2</a></li>
1507 <li><a href="#h3-NCURSES_GPM_TERMS">NCURSES_GPM_TERMS</a></li>
1508 <li><a href="#h3-NCURSES_NO_HARD_TABS">NCURSES_NO_HARD_TABS</a></li>
1509 <li><a href="#h3-NCURSES_NO_MAGIC_COOKIE">NCURSES_NO_MAGIC_COOKIE</a></li>
1510 <li><a href="#h3-NCURSES_NO_PADDING">NCURSES_NO_PADDING</a></li>
1511 <li><a href="#h3-NCURSES_NO_SETBUF">NCURSES_NO_SETBUF</a></li>
1512 <li><a href="#h3-NCURSES_NO_UTF8_ACS">NCURSES_NO_UTF8_ACS</a></li>
1513 <li><a href="#h3-NCURSES_TRACE">NCURSES_TRACE</a></li>
1514 <li><a href="#h3-TERM">TERM</a></li>
1515 <li><a href="#h3-TERMCAP">TERMCAP</a></li>
1516 <li><a href="#h3-TERMINFO">TERMINFO</a></li>
1517 <li><a href="#h3-TERMINFO_DIRS">TERMINFO_DIRS</a></li>
1518 <li><a href="#h3-TERMPATH">TERMPATH</a></li>
1521 <li><a href="#h2-ALTERNATE-CONFIGURATIONS">ALTERNATE CONFIGURATIONS</a></li>
1522 <li><a href="#h2-FILES">FILES</a></li>
1523 <li><a href="#h2-NOTES">NOTES</a></li>
1524 <li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
1525 <li><a href="#h2-PORTABILITY">PORTABILITY</a>
1527 <li><a href="#h3-Error-Checking">Error Checking</a></li>
1528 <li><a href="#h3-Padding-Differences">Padding Differences</a></li>
1529 <li><a href="#h3-Header-Files">Header Files</a></li>
1532 <li><a href="#h2-AUTHORS">AUTHORS</a></li>
1533 <li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>