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