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