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