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.217 2024/05/18 20:02:27 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-18 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-18 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 20240518).
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 perform further setup as follows.
136 intrflush(stdscr, FALSE);
137 keypad(stdscr, TRUE);
139 A <EM>curses</EM> program then often enters an event loop of some sort. Call
140 <STRONG><A HREF="curs_initscr.3x.html">endwin(3x)</A></STRONG> before exiting.
143 </PRE><H3><a name="h3-Overview">Overview</a></H3><PRE>
144 A <EM>curses</EM> library abstracts the terminal screen by representing all or
145 part of it as a <EM>WINDOW</EM> data structure. A <EM>window</EM> is a rectangular grid
146 of character cells, addressed by row and column coordinates (<EM>y</EM>, <EM>x</EM>),
147 with the upper left corner as (0, 0). A window called <STRONG>stdscr</STRONG>, the same
148 size as the terminal screen, is always available. Create others with
149 <STRONG><A HREF="curs_window.3x.html">newwin(3x)</A></STRONG>.
151 A <EM>curses</EM> library does not manage overlapping windows (but see below).
152 You can either use <STRONG>stdscr</STRONG> to manage one screen-filling window, or tile
153 the screen into non-overlapping windows and not use <STRONG>stdscr</STRONG> at all.
154 Mixing the two approaches will result in unpredictable and undesired
157 Functions permit manipulation of a window and the <EM>cursor</EM> identifying
158 the cell within it at which the next output operation will occur.
159 Among those, the most basic are <STRONG><A HREF="curs_move.3x.html">move(3x)</A></STRONG> and <STRONG><A HREF="curs_addch.3x.html">addch(3x)</A></STRONG>: these place the
160 cursor and write a character to <STRONG>stdscr</STRONG>, respectively.
162 Frequent changes to the terminal screen can cause unpleasant flicker or
163 inefficient use of the communication channel to the device, so 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 rendering <EM>attributes</EM>, which cause
180 characters to show up in such modes as boldfaced, underlined, or in
181 reverse video. 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> translates the latter into unique <EM>key</EM> <EM>codes.</EM> See
193 <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. This
859 property is useful to circumvent misfeatures of legacy terminal type
860 descriptions; <STRONG>xterm(1)</STRONG> descriptions specifying 65 lines were once
861 notorious. For best results, avoid specifying <STRONG>cols</STRONG> and <STRONG>lines</STRONG>
862 capability codes in <EM>terminfo</EM> descriptions of terminal emulators.
864 <STRONG><A HREF="curs_util.3x.html">use_env(3x)</A></STRONG> can disable use of the process environment in determining
865 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
866 the screen size obtained from system calls or the terminal database.
869 </PRE><H3><a name="h3-ESCDELAY"><EM>ESCDELAY</EM></a></H3><PRE>
870 For <EM>curses</EM> to distinguish the ESC character resulting from a user's
871 press of the "Escape" key on the input device from one beginning an
872 <EM>escape</EM> <EM>sequence</EM> (as commonly produced by function keys), it waits after
873 receiving the escape character to see if further characters are
874 available on the input stream within a short interval. A global
875 variable <STRONG>ESCDELAY</STRONG> stores this interval in milliseconds. The default
876 value of 1000 (one second) is adequate for most uses. This environment
877 variable overrides it.
879 The most common instance where you may wish to change this value is to
880 work with a remote host over a slow communication channel. If the host
881 running a <EM>curses</EM> application does not receive the characters of an
882 escape sequence in a timely manner, the library can interpret them as
883 multiple key stroke events.
885 <STRONG>xterm(1)</STRONG> mouse events are a form of escape sequence; therefore, if your
886 application makes heavy use of multiple-clicking, you may wish to
887 lengthen the default value because the delay applies to the composite
888 multi-click event as well as the individual clicks.
890 Portable applications should not rely upon the presence of <STRONG>ESCDELAY</STRONG> in
891 either form, but setting the environment variable rather than the
892 global variable does not create problems when compiling an application.
894 If <STRONG><A HREF="curs_inopts.3x.html">keypad(3x)</A></STRONG> is disabled for the <EM>curses</EM> window receiving input, a
895 program must disambiguate escape sequences itself.
898 </PRE><H3><a name="h3-HOME"><EM>HOME</EM></a></H3><PRE>
899 <EM>ncurses</EM> may read and write auxiliary terminal descriptions in <EM>.termcap</EM>
900 and <EM>.terminfo</EM> files in the user's home directory.
903 </PRE><H3><a name="h3-LINES"><EM>LINES</EM></a></H3><PRE>
904 This counterpart to <EM>COLUMNS</EM> specifies the height of the screen in
905 characters. The corresponding <EM>terminfo</EM> capability and code is <STRONG>lines</STRONG>.
906 See the description of the <EM>COLUMNS</EM> variable above.
909 </PRE><H3><a name="h3-MOUSE_BUTTONS_123"><EM>MOUSE_BUTTONS_123</EM></a></H3><PRE>
910 (OS/2 EMX port only) OS/2 numbers a three-button mouse inconsistently
911 with other platforms, such that 1 is the left button, 2 the right, and
912 3 the middle. This variable customizes the mouse button numbering.
913 Its value must be three digits 1-3 in any order. By default, <EM>ncurses</EM>
914 assumes a numbering of "132".
917 </PRE><H3><a name="h3-NCURSES_ASSUMED_COLORS"><EM>NCURSES_ASSUMED_COLORS</EM></a></H3><PRE>
918 If set, this variable overrides the <EM>ncurses</EM> library's compiled-in
919 assumption that the terminal's default colors are white on black; see
920 <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>. Set the foreground and background color values
921 with this environment variable by assigning it two integer values
922 separated by a comma, indicating foregound and background color
923 numbers, respectively.
925 For example, to tell <EM>ncurses</EM> not to assume anything about the colors,
926 use a value of "-1,-1". To make the default color scheme green on
927 black, use "2,0". <EM>ncurses</EM> accepts integral values from -1 up to the
928 value of the <EM>terminfo</EM> <STRONG>max_colors</STRONG> (<STRONG>colors</STRONG>) capability.
931 </PRE><H3><a name="h3-NCURSES_CONSOLE2"><EM>NCURSES_CONSOLE2</EM></a></H3><PRE>
932 (MinGW port only) The <EM>Console2</EM> program defectively handles the
933 Microsoft Console API call <EM>CreateConsoleScreenBuffer</EM>. Applications
934 that use it will hang. However, it is possible to simulate the action
935 of this call by mapping coordinates, explicitly saving and restoring
936 the original screen contents. Setting the environment variable <EM>NCGDB</EM>
940 </PRE><H3><a name="h3-NCURSES_GPM_TERMS"><EM>NCURSES_GPM_TERMS</EM></a></H3><PRE>
941 (Linux only) When <EM>ncurses</EM> is configured to use the GPM interface, this
942 variable may list one or more terminal type names against which the
943 <EM>TERM</EM> variable (see below) is matched. An empty value disables the GPM
944 interface, using <EM>ncurses</EM>'s built-in support for <STRONG>xterm(1)</STRONG> mouse
945 protocols instead. If the variable is absent, <EM>ncurses</EM> attempts to open
946 GPM if <EM>TERM</EM> contains "linux".
949 </PRE><H3><a name="h3-NCURSES_NO_HARD_TABS"><EM>NCURSES_NO_HARD_TABS</EM></a></H3><PRE>
950 <EM>ncurses</EM> may use tab characters in cursor movement optimization. In
951 some cases, your terminal driver may not handle them properly. Set
952 this environment variable to any value to disable the feature. You can
953 also adjust your <STRONG>stty(1)</STRONG> settings to avoid the problem.
956 </PRE><H3><a name="h3-NCURSES_NO_MAGIC_COOKIE"><EM>NCURSES_NO_MAGIC_COOKIE</EM></a></H3><PRE>
957 Many terminals store video attributes as a property of a character
958 cell, as <EM>curses</EM> does. Historically, some recorded changes in video
959 attributes as data that logically <EM>occupies</EM> character cells on the
960 display, switching attributes on or off, similarly to tags in a markup
961 language; these are termed "magic cookies", and must be subsequently
962 overprinted. If the <EM>terminfo</EM> entry for your terminal type does not
963 adequately describe its handling of magic cookies, set this variable to
964 any value to instruct <EM>ncurses</EM> to disable attributes entirely.
967 </PRE><H3><a name="h3-NCURSES_NO_PADDING"><EM>NCURSES_NO_PADDING</EM></a></H3><PRE>
968 Most terminal type descriptions in the <EM>terminfo</EM> database detail
969 hardware devices. Many people use <EM>curses</EM>-based applications in
970 terminal emulator programs that run in a windowing environment. These
971 programs can duplicate all of the important features of a hardware
972 terminal, but often lack their limitations. Chief among these absent
973 drawbacks is the problem of data flow management; that is, limiting the
974 speed of communication to what the hardware could handle. Unless a
975 hardware terminal is interfaced into a terminal concentrator (which
976 does flow control), an application must manage flow itself to prevent
977 overruns and data loss.
979 A solution that comes at no hardware cost is for an application to
980 pause after directing a terminal to execute an operation that it
981 performs slowly, such as clearing the display. Many terminal type
982 descriptions, including that for the VT100, embed delay specifications
983 in capabilities. You may wish to use these terminal descriptions
984 without paying the performance penalty. Set <EM>NCURSES</EM><STRONG>_</STRONG><EM>NO</EM><STRONG>_</STRONG><EM>PADDING</EM> to any
985 value to disable all but mandatory padding. Mandatory padding is used
986 by such terminal capabilities as <STRONG>flash_screen</STRONG> (<STRONG>flash</STRONG>).
989 </PRE><H3><a name="h3-NCURSES_NO_SETBUF"><EM>NCURSES_NO_SETBUF</EM></a></H3><PRE>
990 (Obsolete) Prior to internal changes developed in <EM>ncurses</EM> 5.9 (patches
991 20120825 through 20130126), the library used <STRONG>setbuf(3)</STRONG> to enable fully
992 buffered output when initializing the terminal. This was done, as in
993 SVr4 <EM>curses</EM>, to increase performance. For testing purposes, both of
994 <EM>ncurses</EM> and of certain applications, this feature was made optional.
995 Setting this variable disabled output buffering, leaving the output
996 stream in the original (usually line-buffered) mode.
998 Nowadays, <EM>ncurses</EM> performs its own buffering and does not require this
999 workaround; it does not modify the buffering of the standard output
1000 stream. This approach makes signal handling, as for interrupts, more
1001 robust. A drawback is that certain unconventional programs mixed
1002 <STRONG>stdio(3)</STRONG> calls with <EM>ncurses</EM> calls and (usually) got the behavior they
1003 expected. This is no longer the case; <EM>ncurses</EM> does not write to the
1004 standard output file descriptor through a <EM>stdio</EM>-buffered stream.
1006 As a special case, low-level API calls such as <STRONG><A HREF="curs_terminfo.3x.html">putp(3x)</A></STRONG> still use the
1007 standard output stream. High-level <EM>curses</EM> calls such as <STRONG><A HREF="curs_printw.3x.html">printw(3x)</A></STRONG> do
1011 </PRE><H3><a name="h3-NCURSES_NO_UTF8_ACS"><EM>NCURSES_NO_UTF8_ACS</EM></a></H3><PRE>
1012 At initialization, <EM>ncurses</EM> inspects the <EM>TERM</EM> environment variable for
1013 special cases where VT100 forms-drawing characters (and the
1014 corresponding alternate character set <EM>terminfo</EM> capabilities) are known
1015 to be unsupported by terminal types that otherwise claim VT100
1016 compatibility. Specifically, when running in a UTF-8 locale, the Linux
1017 virtual console device and the GNU <STRONG>screen(1)</STRONG> program ignore them. Set
1018 this variable to a nonzero value to instruct <EM>ncurses</EM> that the
1019 terminal's ACS support is broken; the library then outputs Unicode code
1020 points that correspond to the forms-drawing characters. Set it to zero
1021 (or a non-integer) to disable the special check for terminal type names
1022 matching "linux" or "screen", directing <EM>ncurses</EM> to assume that the ACS
1023 feature works if the terminal type description advertises it.
1025 As an alternative to use of this variable, <EM>ncurses</EM> checks for an
1026 extended <EM>terminfo</EM> numeric capability <STRONG>U8</STRONG> that can be compiled using "<STRONG>tic</STRONG>
1027 <STRONG>-x</STRONG>". Examples follow.
1029 # linux console, if patched to provide working
1030 # VT100 shift-in/shift-out, with corresponding font.
1031 linux-vt100|linux console with VT100 line-graphics,
1034 # uxterm with vt100Graphics resource set to false
1035 xterm-utf8|xterm relying on UTF-8 line-graphics,
1038 The two-character name "U8" was chosen to permit its use via <EM>ncurses</EM>'s
1039 <EM>termcap</EM> interface.
1042 </PRE><H3><a name="h3-NCURSES_TRACE"><EM>NCURSES_TRACE</EM></a></H3><PRE>
1043 At initialization, <EM>ncurses</EM> (in its debugging configuration) checks for
1044 this variable's presence. If defined with an integral value, the
1045 library calls <STRONG><A HREF="curs_trace.3x.html">curses_trace(3x)</A></STRONG> with that value as the argument.
1048 </PRE><H3><a name="h3-TERM"><EM>TERM</EM></a></H3><PRE>
1049 The <EM>TERM</EM> variable denotes the terminal type. Each is distinct, though
1050 many are similar. It is commonly set by terminal emulators to help
1051 applications find a workable terminal description. Some choose a
1052 popular approximation such as "ansi", "vt100", or "xterm" rather than
1053 an exact fit to their capabilities. Not infrequently, an application
1054 will have problems with that approach; for example, a key stroke may
1055 not operate correctly, or produce no effect but seeming garbage
1056 characters on the screen.
1058 Setting <EM>TERM</EM> has no effect on hardware operation; it affects the way
1059 applications communicate with the terminal. Likewise, as a general
1060 rule (<STRONG>xterm(1)</STRONG> being a rare exception), terminal emulators that allow
1061 you to specify <EM>TERM</EM> as a parameter or configuration value do not change
1062 their behavior to match that setting.
1065 </PRE><H3><a name="h3-TERMCAP"><EM>TERMCAP</EM></a></H3><PRE>
1066 If <EM>ncurses</EM> is configured with <EM>termcap</EM> support, it checks for a terminal
1067 type description in <EM>termcap</EM> format if one in <EM>terminfo</EM> format is not
1068 available. Setting this variable directs <EM>ncurses</EM> to ignore the usual
1069 <EM>termcap</EM> database location, <EM>/etc/termcap</EM>; see <EM>TERMPATH</EM> below. <EM>TERMCAP</EM>
1070 should contain either a terminal description (with newlines stripped
1071 out), or a file name indicating where the information required by the
1072 <EM>TERM</EM> environment variable is stored.
1075 </PRE><H3><a name="h3-TERMINFO"><EM>TERMINFO</EM></a></H3><PRE>
1076 <EM>ncurses</EM> can be configured to read terminal type description databases
1077 in various locations using different formats. This variable overrides
1078 the default location.
1080 <STRONG>o</STRONG> Descriptions in <EM>terminfo</EM> format are normally stored in a directory
1081 tree using subdirectories named by the common first letters of the
1082 terminal types named therein. This is the scheme used in System V.
1084 <STRONG>o</STRONG> If <EM>ncurses</EM> is configured to use hashed databases, then <EM>TERMINFO</EM> may
1085 name its location, such as <EM>/usr/share/terminfo.db</EM>, rather than
1086 <EM>/usr/share/terminfo/</EM>.
1088 The hashed database uses less disk space and is a little faster than
1089 the directory tree. However, some applications assume the existence of
1090 the directory tree, and read it directly rather than using the <EM>terminfo</EM>
1093 <STRONG>o</STRONG> If <EM>ncurses</EM> is configured with <EM>termcap</EM> support, this variable may
1094 contain the location of a <EM>termcap</EM> file.
1096 <STRONG>o</STRONG> If the value of <EM>TERMINFO</EM> begins with "hex:" or "b64:", <EM>ncurses</EM> uses
1097 the remainder of the value as a compiled <EM>terminfo</EM> description. You
1098 might produce the base64 format using <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>.
1100 TERMINFO=$(infocmp -0 -Q2 -q)
1103 The compiled description is used only if it corresponds to the
1104 terminal type identified by <EM>TERM</EM>.
1106 Setting <EM>TERMINFO</EM> is the simplest, but not the only, way to direct
1107 <EM>ncurses</EM> to a terminal database. The search path is as follows.
1109 <STRONG>o</STRONG> the last terminal database to which the running <EM>ncurses</EM> application
1112 <STRONG>o</STRONG> the location specified by the <EM>TERMINFO</EM> environment variable
1114 <STRONG>o</STRONG> <EM>$HOME/.terminfo</EM>
1116 <STRONG>o</STRONG> locations listed in the <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM> environment variable
1118 <STRONG>o</STRONG> location(s) configured and compiled into <EM>ncurses</EM>
1120 <STRONG>o</STRONG> <EM>/usr/share/terminfo</EM>
1123 </PRE><H3><a name="h3-TERMINFO_DIRS"><EM>TERMINFO_DIRS</EM></a></H3><PRE>
1124 This variable specifies a list of locations, akin to <EM>PATH</EM>, in which
1125 <EM>ncurses</EM> searches for the terminal type descriptions described by
1126 <EM>TERMINFO</EM> above. The list items are separated by colons on Unix and
1127 semicolons on OS/2 EMX. System V <EM>terminfo</EM> lacks a corresponding
1128 feature; <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM> is an <EM>ncurses</EM> extension.
1131 </PRE><H3><a name="h3-TERMPATH"><EM>TERMPATH</EM></a></H3><PRE>
1132 If <EM>TERMCAP</EM> does not hold a terminal type description or file name, then
1133 <EM>ncurses</EM> checks the contents of <EM>TERMPATH</EM>, a list of locations, akin to
1134 <EM>PATH</EM>, in which it searches for <EM>termcap</EM> terminal type descriptions. The
1135 list items are separated by colons on Unix and semicolons on OS/2 EMX.
1137 If both <EM>TERMCAP</EM> and <EM>TERMPATH</EM> are unset or invalid, <EM>ncurses</EM> searches for
1138 the files <EM>/etc/termcap</EM>, <EM>/usr/share/misc/termcap</EM>, and <EM>$HOME/.termcap</EM>, in
1142 </PRE><H2><a name="h2-ALTERNATE-CONFIGURATIONS">ALTERNATE CONFIGURATIONS</a></H2><PRE>
1143 Many different <EM>ncurses</EM> configurations are possible, determined by the
1144 options given to the <EM>configure</EM> script when building the library. Run
1145 the script with the <STRONG>--help</STRONG> option to peruse them all. A few are of
1146 particular significance to the application developer employing <EM>ncurses</EM>.
1148 <STRONG>--disable-overwrite</STRONG>
1149 The standard C preprocessor inclusion for the <EM>curses</EM> library is as
1152 <STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
1154 This option is used to avoid file name conflicts between <EM>ncurses</EM>
1155 and an existing <EM>curses</EM> installation on the system. If <EM>ncurses</EM> is
1156 installed disabling overwrite, it puts its header files in a
1157 subdirectory. Here is an example.
1159 <STRONG>#include</STRONG> <STRONG><ncurses/curses.h></STRONG>
1161 Installation also omits a symbolic link that would cause the
1162 compiler's <STRONG>-lcurses</STRONG> option to link object files with <EM>ncurses</EM>
1163 instead of the system <EM>curses</EM> library.
1165 The directory used by this configuration of <EM>ncurses</EM> is shown in
1166 section "SYNOPSIS" above.
1168 <STRONG>--enable-widec</STRONG>
1169 The configure script renames the library and (if the
1170 <STRONG>--disable-overwrite</STRONG> option is used) puts the header files in a
1171 different subdirectory. All of the library names have a "w"
1172 appended to them, i.e., instead of
1174 <STRONG>-lncurses</STRONG>
1178 <STRONG>-lncursesw</STRONG>
1180 You must also enable the wide-character features in the header
1181 file when compiling for the wide-character library to use the
1182 extended (wide-character) functions. The symbol which enables
1183 these features has changed since X/Open Curses, Issue 4:
1185 <STRONG>o</STRONG> Originally, the wide-character feature required the symbol
1186 <STRONG>_XOPEN_SOURCE_EXTENDED</STRONG> but that was only valid for XPG4
1189 <STRONG>o</STRONG> Later, that was deemed conflicting with <STRONG>_XOPEN_SOURCE</STRONG> defined
1192 <STRONG>o</STRONG> As of mid-2018, none of the features in this implementation
1193 require a <STRONG>_XOPEN_SOURCE</STRONG> feature greater than 600. However,
1194 X/Open Curses, Issue 7 (2009) recommends defining it to 700.
1196 <STRONG>o</STRONG> Alternatively, you can enable the feature by defining
1197 <STRONG>NCURSES_WIDECHAR</STRONG> with the caveat that some other header file
1198 than <STRONG>curses.h</STRONG> may require a specific value for <STRONG>_XOPEN_SOURCE</STRONG>
1199 (or a system-specific symbol).
1201 The <EM>curses.h</EM> header file installed for the wide-character library
1202 is designed to be compatible with the non-wide library's header.
1203 Only the size of the <EM>WINDOW</EM> structure differs; few applications
1204 require more than pointers to <EM>WINDOW</EM>s.
1206 If the headers are installed allowing overwrite, the wide-
1207 character library's headers should be installed last, to allow
1208 applications to be built using either library from the same set of
1211 <STRONG>--with-pthread</STRONG>
1212 The configure script renames the library. All of the library
1213 names have a "t" appended to them (before any "w" added by
1214 <STRONG>--enable-widec</STRONG>).
1216 The global variables such as <STRONG>LINES</STRONG> are replaced by macros to allow
1217 read-only access. At the same time, setter-functions are provided
1218 to set these values. Some applications (very few) may require
1219 changes to work with this convention.
1221 <STRONG>--with-shared</STRONG>
1222 <STRONG>--with-normal</STRONG>
1223 <STRONG>--with-debug</STRONG>
1224 <STRONG>--with-profile</STRONG>
1225 The shared and normal (static) library names differ by their
1226 suffixes, e.g., <STRONG>libncurses.so</STRONG> and <STRONG>libncurses.a</STRONG>. The debug and
1227 profiling libraries add a "_g" and a "_p" to the root names
1228 respectively, e.g., <STRONG>libncurses_g.a</STRONG> and <STRONG>libncurses_p.a</STRONG>.
1230 <STRONG>--with-termlib</STRONG>
1231 Low-level functions which do not depend upon whether the library
1232 supports wide-characters, are provided in the tinfo library.
1234 By doing this, it is possible to share the tinfo library between
1235 wide/normal configurations as well as reduce the size of the
1236 library when only low-level functions are needed.
1238 Those functions are described in these pages:
1240 <STRONG>o</STRONG> <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG> - miscellaneous <EM>curses</EM> extensions
1242 <STRONG>o</STRONG> <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> - <EM>curses</EM> input options
1244 <STRONG>o</STRONG> <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG> - low-level <EM>curses</EM> routines
1246 <STRONG>o</STRONG> <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG> - <EM>curses</EM> environment query routines
1248 <STRONG>o</STRONG> <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG> - <EM>curses</EM> emulation of <EM>termcap</EM>
1250 <STRONG>o</STRONG> <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> - <EM>curses</EM> interface to <EM>terminfo</EM> database
1252 <STRONG>o</STRONG> <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> - miscellaneous <EM>curses</EM> utility routines
1254 <STRONG>--with-trace</STRONG>
1255 The <STRONG>trace</STRONG> function normally resides in the debug library, but it
1256 is sometimes useful to configure this in the shared library.
1257 Configure scripts should check for the function's existence rather
1258 than assuming it is always in the debug library.
1261 </PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
1262 <EM>/usr/share/tabset</EM>
1263 tab stop initialization database
1265 <EM>/usr/share/terminfo</EM>
1266 compiled terminal capability database
1269 </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
1270 X/Open Curses permits most functions it specifies to be made available
1271 as macros as well. <EM>ncurses</EM> does so
1273 <STRONG>o</STRONG> for functions that return values via their parameters,
1275 <STRONG>o</STRONG> to support obsolete features,
1277 <STRONG>o</STRONG> to reuse functions (for example, those that move the cursor before
1278 another operation), and
1280 <STRONG>o</STRONG> in a few special cases.
1282 If the standard output file descriptor of an <EM>ncurses</EM> program is
1283 redirected to something that is not a terminal device, the library
1284 writes screen updates to the standard error file descriptor. This was
1285 an undocumented feature of SVr3 <EM>curses</EM>.
1287 See subsection "Header Files" below regarding symbols exposed by
1288 inclusion of <EM>curses.h</EM>.
1291 </PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
1292 <EM>ncurses</EM> enables an application to capture mouse events on certain
1293 terminals, including <STRONG>xterm(1)</STRONG>; see <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>.
1295 <EM>ncurses</EM> provides a means of responding to window resizing events, as
1296 when running in a GUI terminal emulator application such as <EM>xterm</EM>; see
1297 <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> and <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>.
1299 <EM>ncurses</EM> allows an application to query the terminal for the presence of
1300 a wide variety of special keys; see <STRONG><A HREF="curs_getch.3x.html">has_key(3x)</A></STRONG>.
1302 <EM>ncurses</EM> extends the fixed set of function key capabilities specified by
1303 X/Open Curses by allowing the application programmer to define
1304 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>,
1305 <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>, and <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>.
1307 <EM>ncurses</EM> can exploit the capabilities of terminals implementing
1308 ISO 6429/ECMA-48 SGR 39 and SGR 49 sequences, which allow an
1309 application to reset the terminal to its original foreground and
1310 background colors. From a user's perspective, the application is able
1311 to draw colored text on a background whose color is set independently,
1312 providing better control over color contrasts. See <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>.
1314 An <EM>ncurses</EM> application can eschew knowledge of <EM>WINDOW</EM> structure
1315 internals, instead using accessor functions such as <STRONG><A HREF="curs_opaque.3x.html">is_scrollok(3x)</A></STRONG>.
1317 <EM>ncurses</EM> enables an application to direct its output to a printer
1318 attached to the terminal device; see <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>.
1320 <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-
1321 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>
1322 that can gather color information from them when many colors are
1325 Some extensions are available only if <EM>ncurses</EM> permits modification of
1326 <STRONG><A HREF="unctrl.3x.html">unctrl(3x)</A></STRONG>'s behavior; see <STRONG><A HREF="legacy_coding.3x.html">use_legacy_coding(3x)</A></STRONG>. <EM>ncurses</EM> is compiled
1327 to support them; section "ALTERNATE CONFIGURATIONS" describes how.
1329 <EM>ncurses</EM> permits modification of <STRONG><A HREF="unctrl.3x.html">unctrl(3x)</A></STRONG>'s behavior; see
1330 <STRONG><A HREF="legacy_coding.3x.html">use_legacy_coding(3x)</A></STRONG>.
1332 Rudimentary support for multi-threaded applications may be available;
1333 see <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>.
1335 Functions that ease the management of multiple screens can be exposed;
1336 see <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>.
1338 To aid applications to debug their memory usage, <EM>ncurses</EM> optionally
1339 offers functions to more aggressively free memory it dynamically
1340 allocates itself; see <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>.
1342 The library facilitates auditing and troubleshooting of its behavior;
1343 see <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>.
1345 Compiling <EM>ncurses</EM> with the option <STRONG>-DUSE_GETCAP</STRONG> causes it to fall back
1346 to reading <EM>/etc/termcap</EM> if the terminal setup code cannot find a <EM>term-</EM>
1347 <EM>info</EM> entry corresponding to <EM>TERM</EM>. Use of this feature is not
1348 recommended, as it essentially includes an entire <EM>termcap</EM> compiler in
1349 the <EM>ncurses</EM> startup code, at a cost in memory usage and application
1352 <EM>PDCurses</EM> and NetBSD <EM>curses</EM> incorporate some <EM>ncurses</EM> extensions.
1353 Individual man pages indicate where this is the case.
1356 </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
1357 X/Open Curses defines two levels of conformance, "base" and "enhanced".
1358 The latter includes several additional features, such as wide-character
1359 and color support. <EM>ncurses</EM> intends base-level conformance with X/Open
1360 Curses, and supports all features of its enhanced level except the
1361 <STRONG>untic</STRONG> utility.
1363 Differences between X/Open Curses and <EM>ncurses</EM> are documented in the
1364 "PORTABILITY" sections of applicable man pages.
1367 </PRE><H3><a name="h3-Error-Checking">Error Checking</a></H3><PRE>
1368 In many cases, X/Open Curses is vague about error conditions, omitting
1369 some of the SVr4 documentation.
1371 Unlike other implementations, <EM>ncurses</EM> checks pointer parameters, such
1372 as those to <EM>WINDOW</EM> structures, to ensure that they are not null. This
1373 is done primarily to guard against programmer error. The standard
1374 interface does not provide a way for the library to tell an application
1375 which of several possible errors occurred. An application that relies
1376 on <EM>ncurses</EM> to check its function parameters for validity limits its
1377 portability and robustness.
1380 </PRE><H3><a name="h3-Padding-Differences">Padding Differences</a></H3><PRE>
1381 In historical <EM>curses</EM> implementations, delays embedded in the <EM>terminfo</EM>
1382 capabilities <STRONG>carriage_return</STRONG> (<STRONG>cr</STRONG>), <STRONG>scroll_forward</STRONG> (<STRONG>ind</STRONG>), <STRONG>cursor_left</STRONG>
1383 (<STRONG>cub1</STRONG>), <STRONG>form_feed</STRONG> (<STRONG>ff</STRONG>), and <STRONG>tab</STRONG> (<STRONG>ht</STRONG>) activated corresponding delay bits
1384 in the Unix terminal driver. <EM>ncurses</EM> performs all padding by sending
1385 NUL bytes to the device. This method is slightly more expensive, but
1386 narrows the interface to the Unix kernel significantly and
1387 correspondingly increases the package's portability.
1390 </PRE><H3><a name="h3-Header-Files">Header Files</a></H3><PRE>
1391 The header file <EM>curses.h</EM> itself includes the header files <EM>stdio.h</EM> and
1394 X/Open Curses has more to say,
1396 The inclusion of <EM>curses.h</EM> may make visible all symbols from the
1397 headers <EM>stdio.h</EM>, <EM>term.h</EM>, <EM>termios.h</EM>, and <EM>wchar.h</EM>.
1399 but does not finish the story. A more complete account follows.
1401 <STRONG>o</STRONG> Starting with 4BSD <EM>curses</EM> (1980) all implementations have provided
1402 a <EM>curses.h</EM> file.
1404 BSD <EM>curses</EM> code included <EM>curses.h</EM> and <EM>unctrl.h</EM> from an internal
1405 header file <EM>curses.ext</EM>, where "ext" abbreviated "externs".
1407 The implementations of <EM>printw</EM> and <EM>scanw</EM> used undocumented internal
1408 functions of the standard I/O library (<STRONG>_</STRONG><EM>doprnt</EM> and <STRONG>_</STRONG><EM>doscan</EM>), but
1409 nothing in <EM>curses.h</EM> itself relied upon <EM>stdio.h</EM>.
1411 <STRONG>o</STRONG> SVr2 <EM>curses</EM> added <EM>newterm</EM>, which relies upon <EM>stdio.h</EM> because its
1412 function prototype employs the <EM>FILE</EM> type.
1414 SVr4 <EM>curses</EM> added <EM>putwin</EM> and <EM>getwin</EM>, which also use <EM>stdio.h</EM>.
1416 X/Open Curses specifies all three of these functions.
1418 SVr4 <EM>curses</EM> and X/Open Curses do not require the developer to
1419 include <EM>stdio.h</EM> before <EM>curses.h</EM>. Both document use of <EM>curses</EM> as
1420 requiring only <EM>curses.h</EM>.
1422 As a result, standard <EM>curses.h</EM> always includes <EM>stdio.h</EM>.
1424 <STRONG>o</STRONG> X/Open Curses and SVr4 <EM>curses</EM> are inconsistent with respect to
1427 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>
1430 <STRONG>o</STRONG> X/Open Curses's comments about <EM>term.h</EM> and <EM>termios.h</EM> may refer to
1433 HP-UX <EM>curses</EM> includes <EM>term.h</EM> from <EM>curses.h</EM> to declare <EM>setupterm</EM> in
1434 <EM>curses.h</EM>, but <EM>ncurses</EM> and Solaris <EM>curses</EM> do not.
1436 AIX <EM>curses</EM> includes <EM>term.h</EM> and <EM>termios.h</EM>. Again, <EM>ncurses</EM> and
1437 Solaris <EM>curses</EM> do not.
1439 <STRONG>o</STRONG> X/Open Curses says that <EM>curses.h</EM> <STRONG>may</STRONG> include <EM>term.h</EM>, but does not
1440 require it to do so.
1442 Some programs use functions declared in both <EM>curses.h</EM> and <EM>term.h</EM>,
1443 and must include both header files in the same module. Very old
1444 versions of AIX <EM>curses</EM> required inclusion of <EM>curses.h</EM> before
1447 The header files supplied by <EM>ncurses</EM> include the standard library
1448 headers required for its declarations, so <EM>ncurses</EM>'s own header
1449 files can be included in any order. But for portability, you
1450 should include <EM>curses.h</EM> before <EM>term.h</EM>.
1452 <STRONG>o</STRONG> X/Open Curses says "may make visible" because including a header
1453 file does not necessarily make visible all of the symbols in it
1454 (consider <STRONG>#ifdef</STRONG> and similar).
1456 For instance, <EM>ncurses</EM>'s <EM>curses.h</EM> <STRONG>may</STRONG> include <EM>wchar.h</EM> if the proper
1457 symbol is defined, and if <EM>ncurses</EM> is configured for wide-character
1458 support. If <EM>wchar.h</EM> is included, its symbols <STRONG>may</STRONG> be made visible
1459 depending on the value of the <STRONG>_XOPEN_SOURCE</STRONG> feature test macro.
1461 <STRONG>o</STRONG> X/Open Curses mandates an application's inclusion of one standard C
1462 library header in a special case: <EM>stdarg.h</EM> before <EM>curses.h</EM> to
1463 prototype the functions <EM>vw</EM><STRONG>_</STRONG><EM>printw</EM> and <EM>vw</EM><STRONG>_</STRONG><EM>scanw</EM> (as well as the
1464 obsolete <EM>vwprintw</EM> and <EM>vwscanw</EM>). Each of these takes a variadic
1465 argument list, a <EM>va</EM><STRONG>_</STRONG><EM>list</EM> parameter, like that of <STRONG>printf(3)</STRONG>.
1467 SVr3 <EM>curses</EM> introduced the two obsolete functions, and X/Open
1468 Curses the others. In between, SVr4 <EM>curses</EM> provided for the
1469 possibility that an application might include either <EM>varargs.h</EM> or
1470 <EM>stdarg.h</EM>. These represented contrasting approaches to handling
1471 variadic argument lists. The older interface, <EM>varargs.h</EM>, used a
1472 pointer to <EM>char</EM> for variadic functions' <EM>va</EM><STRONG>_</STRONG><EM>list</EM> parameter. Later,
1473 the list acquired its own standard data type, <EM>va</EM><STRONG>_</STRONG><EM>list</EM>, defined in
1474 <EM>stdarg.h</EM>, empowering the compiler to check the types of a function
1475 call's actual parameters against the formal ones declared in its
1478 No conforming implementations of X/Open Curses require an
1479 application to include <EM>stdarg.h</EM> before <EM>curses.h</EM> because they either
1480 have allowed for a special type, or, like <EM>ncurses</EM>, they include
1481 <EM>stdarg.h</EM> themselves to provide a portable interface.
1484 </PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
1485 Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey. Based on <EM>pcurses</EM>
1489 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
1490 <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>
1494 ncurses 6.5 2024-05-18 <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
1498 <li><a href="#h2-NAME">NAME</a></li>
1499 <li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
1500 <li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
1502 <li><a href="#h3-Application-Structure">Application Structure</a></li>
1503 <li><a href="#h3-Overview">Overview</a></li>
1504 <li><a href="#h3-Initialization">Initialization</a></li>
1505 <li><a href="#h3-Naming-Conventions">Naming Conventions</a></li>
1506 <li><a href="#h3-Wide-and-Non-wide-Character-Configurations">Wide and Non-wide Character Configurations</a></li>
1507 <li><a href="#h3-Function-Name-Index">Function Name Index</a></li>
1510 <li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
1511 <li><a href="#h2-ENVIRONMENT">ENVIRONMENT</a>
1513 <li><a href="#h3-BAUDRATE">BAUDRATE</a></li>
1514 <li><a href="#h3-CC-_command-character_">CC (command character)</a></li>
1515 <li><a href="#h3-COLUMNS">COLUMNS</a></li>
1516 <li><a href="#h3-ESCDELAY">ESCDELAY</a></li>
1517 <li><a href="#h3-HOME">HOME</a></li>
1518 <li><a href="#h3-LINES">LINES</a></li>
1519 <li><a href="#h3-MOUSE_BUTTONS_123">MOUSE_BUTTONS_123</a></li>
1520 <li><a href="#h3-NCURSES_ASSUMED_COLORS">NCURSES_ASSUMED_COLORS</a></li>
1521 <li><a href="#h3-NCURSES_CONSOLE2">NCURSES_CONSOLE2</a></li>
1522 <li><a href="#h3-NCURSES_GPM_TERMS">NCURSES_GPM_TERMS</a></li>
1523 <li><a href="#h3-NCURSES_NO_HARD_TABS">NCURSES_NO_HARD_TABS</a></li>
1524 <li><a href="#h3-NCURSES_NO_MAGIC_COOKIE">NCURSES_NO_MAGIC_COOKIE</a></li>
1525 <li><a href="#h3-NCURSES_NO_PADDING">NCURSES_NO_PADDING</a></li>
1526 <li><a href="#h3-NCURSES_NO_SETBUF">NCURSES_NO_SETBUF</a></li>
1527 <li><a href="#h3-NCURSES_NO_UTF8_ACS">NCURSES_NO_UTF8_ACS</a></li>
1528 <li><a href="#h3-NCURSES_TRACE">NCURSES_TRACE</a></li>
1529 <li><a href="#h3-TERM">TERM</a></li>
1530 <li><a href="#h3-TERMCAP">TERMCAP</a></li>
1531 <li><a href="#h3-TERMINFO">TERMINFO</a></li>
1532 <li><a href="#h3-TERMINFO_DIRS">TERMINFO_DIRS</a></li>
1533 <li><a href="#h3-TERMPATH">TERMPATH</a></li>
1536 <li><a href="#h2-ALTERNATE-CONFIGURATIONS">ALTERNATE CONFIGURATIONS</a></li>
1537 <li><a href="#h2-FILES">FILES</a></li>
1538 <li><a href="#h2-NOTES">NOTES</a></li>
1539 <li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
1540 <li><a href="#h2-PORTABILITY">PORTABILITY</a>
1542 <li><a href="#h3-Error-Checking">Error Checking</a></li>
1543 <li><a href="#h3-Padding-Differences">Padding Differences</a></li>
1544 <li><a href="#h3-Header-Files">Header Files</a></li>
1547 <li><a href="#h2-AUTHORS">AUTHORS</a></li>
1548 <li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>