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