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