3 ****************************************************************************
4 * Copyright 2018-2021,2023 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.181 2023/11/25 14:32:36 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 2023-11-25 ncurses 6.4 Library calls</TITLE>
39 <link rel="author" href="mailto:bug-ncurses@gnu.org">
43 <H1 class="no-header">ncurses 3x 2023-11-25 ncurses 6.4 Library calls</H1>
45 <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> Library calls <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
50 </PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
51 <STRONG>ncurses</STRONG> - character-cell terminal interface with optimized output
54 </PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
55 <STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
58 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
59 The <STRONG>ncurses</STRONG> library routines give the user a terminal-independent
60 method of updating character screens with reasonable optimization.
61 This implementation is "new curses" (ncurses) and is the approved
62 replacement for 4.4BSD classic curses, which has been discontinued.
63 This describes <STRONG>ncurses</STRONG> version 6.4 (patch 20231125).
65 The <STRONG>ncurses</STRONG> library emulates the curses library of System V Release 4
66 Unix ("SVr4"), and XPG4 (X/Open Portability Guide) curses (also known
67 as XSI curses). XSI stands for X/Open System Interfaces Extension.
68 The <STRONG>ncurses</STRONG> library is freely redistributable in source form.
70 <EM>ncurses</EM> man pages employ several sections to clarify matters of usage
71 and interoperability with other <EM>curses</EM> implementations.
73 <STRONG>o</STRONG> "NOTES" describes matters and caveats of which any user of the
74 <EM>ncurses</EM> API should be aware, such as limitations on the size of an
75 underlying integral type or the availability of a preprocessor
76 macro for a function (which prevents its address from being taken).
77 This section also describes implementation details that will be
78 significant to the programmer but which are not standardized.
80 <STRONG>o</STRONG> "EXTENSIONS" presents <EM>ncurses</EM> innovations beyond the X/Open Curses
81 standard and/or the SVr4 <EM>curses</EM> implementation. They are termed
82 <EM>extensions</EM> to indicate that they cannot be implemented solely by
83 using the library API, but require access to the library's internal
86 <STRONG>o</STRONG> "PORTABILITY" discusses matters (beyond the exercise of extensions)
87 that should be considered when writing to a <EM>curses</EM> standard, or to
88 multiple implementations.
90 <STRONG>o</STRONG> "HISTORY" examines points of detail in <EM>ncurses</EM> and other <EM>curses</EM>
91 implementations over the decades of their development, particularly
92 where precedent or inertia have frustrated better design (and, in a
93 few cases, where such inertia has been overcome).
95 A program using these routines must be linked with the <STRONG>-lncurses</STRONG>
96 option, or (if it has been generated) with the debugging library
97 <STRONG>-lncurses_g</STRONG>. (Your system integrator may also have installed these
98 libraries under the names <STRONG>-lcurses</STRONG> and <STRONG>-lcurses_g</STRONG>.) The ncurses_g
99 library generates trace logs (in a file called "trace" in the current
100 directory) that describe curses actions. See also the section on
101 <STRONG>ALTERNATE</STRONG> <STRONG>CONFIGURATIONS</STRONG>.
103 The <STRONG>ncurses</STRONG> package supports: overall screen, window and pad
104 manipulation; output to windows and pads; reading terminal input;
105 control over terminal and <STRONG>curses</STRONG> input and output options; environment
106 query routines; color manipulation; use of soft label keys; terminfo
107 capabilities; and access to low-level terminal-manipulation routines.
110 </PRE><H3><a name="h3-Initialization">Initialization</a></H3><PRE>
111 The library uses the locale which the calling program has initialized.
112 That is normally done with <STRONG>setlocale(3)</STRONG>:
114 <STRONG>setlocale(LC_ALL,</STRONG> <STRONG>"");</STRONG>
116 If the locale is not initialized, the library assumes that characters
117 are printable as in ISO-8859-1, to work with certain legacy programs.
118 You should initialize the locale and not rely on specific details of
119 the library when the locale has not been setup.
121 The function <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG> must be called to initialize the
122 library before any of the other routines that deal with windows and
123 screens are used. The routine <STRONG><A HREF="curs_initscr.3x.html">endwin(3x)</A></STRONG> must be called before
126 To get character-at-a-time input without echoing (most interactive,
127 screen oriented programs want this), the following sequence should be
130 <STRONG>initscr();</STRONG> <STRONG>cbreak();</STRONG> <STRONG>noecho();</STRONG>
132 Most programs would additionally use the sequence:
134 <STRONG>intrflush(stdscr,</STRONG> <STRONG>FALSE);</STRONG>
135 <STRONG>keypad(stdscr,</STRONG> <STRONG>TRUE);</STRONG>
137 Before a <STRONG>curses</STRONG> program is run, the tab stops of the terminal should be
138 set and its initialization strings, if defined, must be output. This
139 can be done by executing the <STRONG>tput</STRONG> <STRONG>init</STRONG> command after the shell
140 environment variable <STRONG>TERM</STRONG> has been exported. (The BSD-style <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>
141 utility also performs this function.) See subsection "Tabs and
142 Initialization" of <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
145 </PRE><H3><a name="h3-Datatypes">Datatypes</a></H3><PRE>
146 The <STRONG>ncurses</STRONG> library permits manipulation of data structures, called
147 <EM>windows</EM>, which can be thought of as two-dimensional arrays of
148 characters representing all or part of a CRT screen. A default window
149 called <STRONG>stdscr</STRONG>, which is the size of the terminal screen, is supplied.
150 Others may be created with <STRONG>newwin</STRONG>.
152 Note that <STRONG>curses</STRONG> does not handle overlapping windows, that's done by
153 the <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG> library. This means that you can either use <STRONG>stdscr</STRONG> or
154 divide the screen into tiled windows and not using <STRONG>stdscr</STRONG> at all.
155 Mixing the two will result in unpredictable, and undesired, effects.
157 Windows are referred to by variables declared as <STRONG>WINDOW</STRONG> <STRONG>*</STRONG>. These data
158 structures are manipulated with routines described here and elsewhere
159 in the <STRONG>ncurses</STRONG> manual pages. Among those, the most basic routines are
160 <STRONG>move</STRONG> and <STRONG>addch</STRONG>. More general versions of these routines are included
161 with names beginning with <STRONG>w</STRONG>, allowing the user to specify a window.
162 The routines not beginning with <STRONG>w</STRONG> affect <STRONG>stdscr</STRONG>.
164 After using routines to manipulate a window, <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG> is called,
165 telling <STRONG>curses</STRONG> to make the user's CRT screen look like <STRONG>stdscr</STRONG>. The
166 characters in a window are actually of type <STRONG>chtype</STRONG>, (character and
167 attribute data) so that other information about the character may also
168 be stored with each character.
170 Special windows called <EM>pads</EM> may also be manipulated. These are windows
171 which are not constrained to the size of the screen and whose contents
172 need not be completely displayed. See <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG> for more
175 In addition to drawing characters on the screen, video attributes and
176 colors may be supported, causing the characters to show up in such
177 modes as underlined, in reverse video, or in color on terminals that
178 support such display enhancements. Line drawing characters may be
179 specified to be output. On input, <STRONG>curses</STRONG> is also able to translate
180 arrow and function keys that transmit escape sequences into single
181 values. The video attributes, line drawing characters, and input
182 values use names, defined in <STRONG><curses.h></STRONG>, such as <STRONG>A_REVERSE</STRONG>, <STRONG>ACS_HLINE</STRONG>,
183 and <STRONG>KEY_LEFT</STRONG>.
186 </PRE><H3><a name="h3-Environment-variables">Environment variables</a></H3><PRE>
187 If the environment variables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> are set, or if the
188 program is executing in a window environment, line and column
189 information in the environment will override information read by
190 <EM>terminfo</EM>. This would affect a program running in an AT&T 630 layer,
191 for example, where the size of a screen is changeable (see
192 <STRONG>ENVIRONMENT</STRONG>).
194 If the environment variable <STRONG>TERMINFO</STRONG> is defined, any program using
195 <STRONG>curses</STRONG> checks for a local terminal definition before checking in the
196 standard place. For example, if <STRONG>TERM</STRONG> is set to <STRONG>att4424</STRONG>, then the
197 compiled terminal definition is found in
199 <STRONG>/usr/share/terminfo/a/att4424</STRONG>.
201 (The <STRONG>a</STRONG> is copied from the first letter of <STRONG>att4424</STRONG> to avoid creation of
202 huge directories.) However, if <STRONG>TERMINFO</STRONG> is set to <STRONG>$HOME/myterms</STRONG>,
203 <STRONG>curses</STRONG> first checks
205 <STRONG>$HOME/myterms/a/att4424</STRONG>,
207 and if that fails, it then checks
209 <STRONG>/usr/share/terminfo/a/att4424</STRONG>.
211 This is useful for developing experimental definitions or when write
212 permission in <STRONG>/usr/share/terminfo</STRONG> is not available.
214 The integer variables <STRONG>LINES</STRONG> and <STRONG>COLS</STRONG> are defined in <STRONG><curses.h></STRONG> and will
215 be filled in by <STRONG>initscr</STRONG> with the size of the screen. The constants
216 <STRONG>TRUE</STRONG> and <STRONG>FALSE</STRONG> have the values <STRONG>1</STRONG> and <STRONG>0</STRONG>, respectively.
218 The <STRONG>curses</STRONG> routines also define the <STRONG>WINDOW</STRONG> <STRONG>*</STRONG> variable <STRONG>curscr</STRONG> which is
219 used for certain low-level operations like clearing and redrawing a
220 screen containing garbage. The <STRONG>curscr</STRONG> can be used in only a few
224 </PRE><H3><a name="h3-Routine-and-Argument-Names">Routine and Argument Names</a></H3><PRE>
225 Many <STRONG>curses</STRONG> routines have two or more versions. The routines prefixed
226 with <EM>w</EM> require a window argument. The routines prefixed with <EM>p</EM> require
227 a pad argument. Those without a prefix generally use <STRONG>stdscr</STRONG>.
229 The routines prefixed with <STRONG>mv</STRONG> require a <EM>y</EM> and <EM>x</EM> coordinate to move to
230 before performing the appropriate action. The <STRONG>mv</STRONG> routines imply a call
231 to <STRONG>move</STRONG> before the call to the other routine. The coordinate <EM>y</EM> always
232 refers to the row (of the window), and <EM>x</EM> always refers to the column.
233 The upper left-hand corner is always (0,0), not (1,1).
235 The routines prefixed with <STRONG>mvw</STRONG> take both a window argument and <EM>x</EM> and <EM>y</EM>
236 coordinates. The window argument is always specified before the
239 In each case, <EM>win</EM> is the window affected, and <EM>pad</EM> is the pad affected;
240 <EM>win</EM> and <EM>pad</EM> are always pointers to type <STRONG>WINDOW</STRONG>.
242 Option setting routines require a Boolean flag <EM>bf</EM> with the value <STRONG>TRUE</STRONG>
243 or <STRONG>FALSE</STRONG>; <EM>bf</EM> is always of type <STRONG>bool</STRONG>. Most of the data types used in
244 the library routines, such as <STRONG>WINDOW</STRONG>, <STRONG>SCREEN</STRONG>, <STRONG>bool</STRONG>, and <STRONG>chtype</STRONG> are
245 defined in <STRONG><curses.h></STRONG>. Types used for the terminfo routines such as
246 <STRONG>TERMINAL</STRONG> are defined in <STRONG><term.h></STRONG>.
248 This manual page describes functions which may appear in any
249 configuration of the library. There are two common configurations of
253 the "normal" library, which handles 8-bit characters. The
254 normal (8-bit) library stores characters combined with
255 attributes in <STRONG>chtype</STRONG> data.
257 Attributes alone (no corresponding character) may be stored in
258 <STRONG>chtype</STRONG> or the equivalent <STRONG>attr_t</STRONG> data. In either case, the data
259 is stored in something like an integer.
261 Each cell (row and column) in a <STRONG>WINDOW</STRONG> is stored as a <STRONG>chtype</STRONG>.
264 the so-called "wide" library, which handles multibyte
265 characters (see the section on <STRONG>ALTERNATE</STRONG> <STRONG>CONFIGURATIONS</STRONG>). The
266 "wide" library includes all of the calls from the "normal"
267 library. It adds about one third more calls using data types
268 which store multibyte characters:
270 <STRONG>cchar_t</STRONG>
271 corresponds to <STRONG>chtype</STRONG>. However it is a structure, because
272 more data is stored than can fit into an integer. The
273 characters are large enough to require a full integer
274 value - and there may be more than one character per cell.
275 The video attributes and color are stored in separate
276 fields of the structure.
278 Each cell (row and column) in a <STRONG>WINDOW</STRONG> is stored as a
279 <STRONG>cchar_t</STRONG>.
281 The <STRONG><A HREF="curs_getcchar.3x.html">setcchar(3x)</A></STRONG> and <STRONG><A HREF="curs_getcchar.3x.html">getcchar(3x)</A></STRONG> functions store and
282 retrieve the data from a <STRONG>cchar_t</STRONG> structure.
284 <STRONG>wchar_t</STRONG>
285 stores a "wide" character. Like <STRONG>chtype</STRONG>, this may be an
288 <STRONG>wint_t</STRONG>
289 stores a <STRONG>wchar_t</STRONG> or <STRONG>WEOF</STRONG> - not the same, though both may
292 The "wide" library provides new functions which are analogous
293 to functions in the "normal" library. There is a naming
294 convention which relates many of the normal/wide variants: a
295 "_w" is inserted into the name. For example, <STRONG>waddch</STRONG> becomes
296 <STRONG>wadd_wch</STRONG>.
299 </PRE><H3><a name="h3-Routine-Name-Index">Routine Name Index</a></H3><PRE>
300 The following table lists the <STRONG>curses</STRONG> routines provided in the "normal"
301 and "wide" libraries and the names of the manual pages on which they
302 are described. Routines flagged with "*" are ncurses-specific, not
303 described by XPG4 or present in SVr4.
305 <STRONG>curses</STRONG> Routine Name Manual Page Name
306 ---------------------------------------------
307 COLOR_PAIR <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
308 PAIR_NUMBER <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
309 add_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
310 add_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
311 add_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
312 addch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
313 addchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
314 addchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
315 addnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
317 addnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
318 addstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
319 addwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
320 alloc_pair <STRONG><A HREF="new_pair.3x.html">new_pair(3x)</A></STRONG>*
321 assume_default_colors <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>*
322 attr_get <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
323 attr_off <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
324 attr_on <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
325 attr_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
326 attroff <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
327 attron <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
328 attrset <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
329 baudrate <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
330 beep <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
331 bkgd <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
332 bkgdset <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
333 bkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
334 bkgrndset <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
335 border <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
336 border_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
337 box <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
338 box_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
339 can_change_color <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
340 cbreak <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
341 chgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
342 clear <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
343 clearok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
344 clrtobot <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
345 clrtoeol <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
346 color_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
347 color_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
348 copywin <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
349 curs_set <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
350 curses_trace <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
351 curses_version <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>*
352 def_prog_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
353 def_shell_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
354 define_key <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>*
355 del_curterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
356 delay_output <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
357 delch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
358 deleteln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
359 delscreen <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
360 delwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
361 derwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
362 doupdate <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
363 dupwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
364 echo <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
365 echo_wchar <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
366 echochar <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
367 endwin <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
368 erase <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
369 erasechar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
370 erasewchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
371 exit_curses <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>*
372 exit_terminfo <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>*
373 extended_color_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
374 extended_pair_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
375 extended_slk_color <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>*
376 filter <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
377 find_pair <STRONG><A HREF="new_pair.3x.html">new_pair(3x)</A></STRONG>*
378 flash <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
379 flushinp <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
380 free_pair <STRONG><A HREF="new_pair.3x.html">new_pair(3x)</A></STRONG>*
381 get_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
383 get_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
384 getattrs <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
385 getbegx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
386 getbegy <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
387 getbegyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
388 getbkgd <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
389 getbkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
390 getcchar <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
391 getch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
392 getcurx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
393 getcury <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
394 getmaxx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
395 getmaxy <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
396 getmaxyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
397 getmouse <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
398 getn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
399 getnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
400 getparx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
401 getpary <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
402 getparyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
403 getstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
404 getsyx <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
405 getwin <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
406 getyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
407 halfdelay <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
408 has_colors <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
409 has_ic <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
410 has_il <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
411 has_key <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>*
412 has_mouse <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
413 hline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
414 hline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
415 idcok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
416 idlok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
417 immedok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
418 in_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
419 in_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
420 in_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
421 inch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
422 inchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
423 inchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
424 init_color <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
425 init_extended_color <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
426 init_extended_pair <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
427 init_pair <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
428 initscr <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
429 innstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
430 innwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
431 ins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
432 ins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
433 ins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
434 insch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
435 insdelln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
436 insertln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
437 insnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
438 insstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
439 instr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
440 intrflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
441 inwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
442 is_cbreak <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>*
443 is_cleared <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
444 is_echo <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>*
445 is_idcok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
446 is_idlok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
447 is_immedok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
449 is_keypad <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
450 is_leaveok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
451 is_linetouched <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
452 is_nl <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>*
453 is_nodelay <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
454 is_notimeout <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
455 is_pad <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
456 is_raw <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>*
457 is_scrollok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
458 is_subwin <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
459 is_syncok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
460 is_term_resized <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>*
461 is_wintouched <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
462 isendwin <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
463 key_defined <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>*
464 key_name <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
465 keybound <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>*
466 keyname <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
467 keyok <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>*
468 keypad <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
469 killchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
470 killwchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
471 leaveok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
472 longname <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
473 mcprint <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>*
474 meta <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
475 mouse_trafo <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
476 mouseinterval <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
477 mousemask <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
478 move <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
479 mvadd_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
480 mvadd_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
481 mvadd_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
482 mvaddch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
483 mvaddchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
484 mvaddchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
485 mvaddnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
486 mvaddnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
487 mvaddstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
488 mvaddwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
489 mvchgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
490 mvcur <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
491 mvdelch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
492 mvderwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
493 mvget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
494 mvget_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
495 mvgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
496 mvgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
497 mvgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
498 mvgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
499 mvhline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
500 mvhline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
501 mvin_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
502 mvin_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
503 mvin_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
504 mvinch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
505 mvinchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
506 mvinchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
507 mvinnstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
508 mvinnwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
509 mvins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
510 mvins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
511 mvins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
512 mvinsch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
513 mvinsnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
515 mvinsstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
516 mvinstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
517 mvinwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
518 mvprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
519 mvscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
520 mvvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
521 mvvline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
522 mvwadd_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
523 mvwadd_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
524 mvwadd_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
525 mvwaddch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
526 mvwaddchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
527 mvwaddchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
528 mvwaddnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
529 mvwaddnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
530 mvwaddstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
531 mvwaddwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
532 mvwchgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
533 mvwdelch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
534 mvwget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
535 mvwget_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
536 mvwgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
537 mvwgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
538 mvwgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
539 mvwgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
540 mvwhline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
541 mvwhline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
542 mvwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
543 mvwin_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
544 mvwin_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
545 mvwin_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
546 mvwinch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
547 mvwinchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
548 mvwinchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
549 mvwinnstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
550 mvwinnwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
551 mvwins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
552 mvwins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
553 mvwins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
554 mvwinsch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
555 mvwinsnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
556 mvwinsstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
557 mvwinstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
558 mvwinwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
559 mvwprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
560 mvwscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
561 mvwvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
562 mvwvline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
563 napms <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
564 newpad <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
565 newterm <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
566 newwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
567 nl <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
568 nocbreak <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
569 nodelay <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
570 noecho <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
571 nofilter <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>*
572 nonl <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
573 noqiflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
574 noraw <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
575 notimeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
576 overlay <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
577 overwrite <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
578 pair_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
579 pecho_wchar <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
581 pechochar <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
582 pnoutrefresh <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
583 prefresh <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
584 printw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
585 putp <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
586 putwin <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
587 qiflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
588 raw <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
589 redrawwin <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
590 refresh <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
591 reset_color_pairs <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
592 reset_prog_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
593 reset_shell_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
594 resetty <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
595 resize_term <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>*
596 resizeterm <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>*
597 restartterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
598 ripoffline <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
599 savetty <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
600 scanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
601 scr_dump <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
602 scr_init <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
603 scr_restore <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
604 scr_set <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
605 scrl <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
606 scroll <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
607 scrollok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
608 set_curterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
609 set_term <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
610 setcchar <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
611 setscrreg <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
612 setsyx <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
613 setupterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
614 slk_attr <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>*
615 slk_attr_off <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
616 slk_attr_on <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
617 slk_attr_set <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
618 slk_attroff <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
619 slk_attron <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
620 slk_attrset <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
621 slk_clear <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
622 slk_color <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
623 slk_init <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
624 slk_label <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
625 slk_noutrefresh <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
626 slk_refresh <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
627 slk_restore <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
628 slk_set <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
629 slk_touch <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
630 slk_wset <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
631 standend <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
632 standout <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
633 start_color <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
634 subpad <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
635 subwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
636 syncok <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
637 term_attrs <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
638 termattrs <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
639 termname <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
640 tgetent <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
641 tgetflag <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
642 tgetnum <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
643 tgetstr <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
644 tgoto <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
645 tigetflag <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
647 tigetnum <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
648 tigetstr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
649 timeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
650 tiparm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
651 tiparm_s <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>*
652 tiscan_s <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>*
653 touchline <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
654 touchwin <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
655 tparm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
656 tputs <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
657 tputs <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
658 trace <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
659 typeahead <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
660 unctrl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
661 unget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
662 ungetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
663 ungetmouse <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
664 untouchwin <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
665 use_default_colors <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>*
666 use_env <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
667 use_extended_names <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>*
668 use_legacy_coding <STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG>*
669 use_tioctl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>*
670 vid_attr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
671 vid_puts <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
672 vidattr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
673 vidputs <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
674 vline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
675 vline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
676 vw_printw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
677 vw_scanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
678 vwprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
679 vwscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
680 wadd_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
681 wadd_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
682 wadd_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
683 waddch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
684 waddchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
685 waddchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
686 waddnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
687 waddnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
688 waddstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
689 waddwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
690 wattr_get <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
691 wattr_off <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
692 wattr_on <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
693 wattr_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
694 wattroff <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
695 wattron <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
696 wattrset <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
697 wbkgd <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
698 wbkgdset <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
699 wbkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
700 wbkgrndset <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
701 wborder <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
702 wborder_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
703 wchgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
704 wclear <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
705 wclrtobot <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
706 wclrtoeol <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
707 wcolor_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
708 wcursyncup <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
709 wdelch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
710 wdeleteln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
711 wecho_wchar <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
713 wechochar <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
714 wenclose <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
715 werase <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
716 wget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
717 wget_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
718 wgetbkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
719 wgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
720 wgetdelay <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
721 wgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
722 wgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
723 wgetparent <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
724 wgetscrreg <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
725 wgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
726 whline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
727 whline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
728 win_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
729 win_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
730 win_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
731 winch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
732 winchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
733 winchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
734 winnstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
735 winnwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
736 wins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
737 wins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
738 wins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
739 winsch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
740 winsdelln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
741 winsertln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
742 winsnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
743 winsstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
744 winstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
745 winwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
746 wmouse_trafo <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
747 wmove <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
748 wnoutrefresh <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
749 wprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
750 wredrawln <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
751 wrefresh <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
752 wresize <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>*
753 wscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
754 wscrl <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
755 wsetscrreg <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
756 wstandend <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
757 wstandout <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
758 wsyncdown <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
759 wsyncup <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
760 wtimeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
761 wtouchln <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
762 wunctrl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
763 wvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
764 wvline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
766 Depending on the configuration, additional sets of functions may be
769 <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG> - curses memory-leak checking
771 <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG> - curses screen-pointer extension
773 <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG> - curses thread support
775 <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG> - curses debugging routines
778 </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
779 Routines that return an integer return <STRONG>ERR</STRONG> upon failure and an integer
780 value other than <STRONG>ERR</STRONG> upon successful completion, unless otherwise noted
781 in the routine descriptions.
783 As a general rule, routines check for null pointers passed as
784 parameters, and handle this as an error.
786 All macros return the value of the <STRONG>w</STRONG> version, except <STRONG>setscrreg</STRONG>,
787 <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>, and <STRONG>getmaxyx</STRONG>. The return values of
788 <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>, and <STRONG>getmaxyx</STRONG> are undefined
789 (i.e., these should not be used as the right-hand side of assignment
792 Functions with a "mv" prefix first perform a cursor movement using
793 <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
794 the window pointer is null. Most "mv"-prefixed functions (except
795 variadic functions such as <STRONG>mvprintw</STRONG>) are provided both as macros and
798 Routines that return pointers return <STRONG>NULL</STRONG> on error.
801 </PRE><H2><a name="h2-ENVIRONMENT">ENVIRONMENT</a></H2><PRE>
802 The following environment symbols are useful for customizing the
803 runtime behavior of the <STRONG>ncurses</STRONG> library. The most important ones have
804 been already discussed in detail.
807 </PRE><H3><a name="h3-CC-command-character">CC command-character</a></H3><PRE>
808 When set, change occurrences of the command_character (i.e., the <STRONG>cmdch</STRONG>
809 capability) of the loaded terminfo entries to the value of this
810 variable. Very few terminfo entries provide this feature.
812 Because this name is also used in development environments to represent
813 the C compiler's name, <STRONG>ncurses</STRONG> ignores it if it does not happen to be a
817 </PRE><H3><a name="h3-BAUDRATE">BAUDRATE</a></H3><PRE>
818 The debugging library checks this environment variable when the
819 application has redirected output to a file. The variable's numeric
820 value is used for the baudrate. If no value is found, <STRONG>ncurses</STRONG> uses
821 9600. This allows testers to construct repeatable test-cases that take
822 into account costs that depend on baudrate.
825 </PRE><H3><a name="h3-COLUMNS">COLUMNS</a></H3><PRE>
826 Specify the width of the screen in characters. Applications running in
827 a windowing environment usually are able to obtain the width of the
828 window in which they are executing. If neither the <STRONG>COLUMNS</STRONG> value nor
829 the terminal's screen size is available, <STRONG>ncurses</STRONG> uses the size which
830 may be specified in the terminfo database (i.e., the <STRONG>cols</STRONG> capability).
832 It is important that your application use a correct size for the
833 screen. This is not always possible because your application may be
834 running on a host which does not honor NAWS (Negotiations About Window
835 Size), or because you are temporarily running as another user.
836 However, setting <STRONG>COLUMNS</STRONG> and/or <STRONG>LINES</STRONG> overrides the library's use of
837 the screen size obtained from the operating system.
839 Either <STRONG>COLUMNS</STRONG> or <STRONG>LINES</STRONG> symbols may be specified independently. This
840 is mainly useful to circumvent legacy misfeatures of terminal
841 descriptions, e.g., xterm which commonly specifies a 65 line screen.
842 For best results, <STRONG>lines</STRONG> and <STRONG>cols</STRONG> should not be specified in a terminal
843 description for terminals which are run as emulations.
845 Use the <STRONG>use_env</STRONG> function to disable all use of external environment
846 (but not including system calls) to determine the screen size. Use the
847 <STRONG>use_tioctl</STRONG> function to update <STRONG>COLUMNS</STRONG> or <STRONG>LINES</STRONG> to match the screen size
848 obtained from system calls or the terminal database.
851 </PRE><H3><a name="h3-ESCDELAY">ESCDELAY</a></H3><PRE>
852 Specifies the total time, in milliseconds, for which ncurses will await
853 a character sequence, e.g., a function key. The default value, 1000
854 milliseconds, is enough for most uses. However, it is made a variable
855 to accommodate unusual applications.
857 The most common instance where you may wish to change this value is to
858 work with slow hosts, e.g., running on a network. If the host cannot
859 read characters rapidly enough, it will have the same effect as if the
860 terminal did not send characters rapidly enough. The library will
863 Note that xterm mouse events are built up from character sequences
864 received from the xterm. If your application makes heavy use of
865 multiple-clicking, you may wish to lengthen this default value because
866 the timeout applies to the composed multi-click event as well as the
869 In addition to the environment variable, this implementation provides a
870 global variable with the same name. Portable applications should not
871 rely upon the presence of ESCDELAY in either form, but setting the
872 environment variable rather than the global variable does not create
873 problems when compiling an application.
876 </PRE><H3><a name="h3-HOME">HOME</a></H3><PRE>
877 Tells <STRONG>ncurses</STRONG> where your home directory is. That is where it may read
878 and write auxiliary terminal descriptions:
884 </PRE><H3><a name="h3-LINES">LINES</a></H3><PRE>
885 Like COLUMNS, specify the height of the screen in characters. See
886 COLUMNS for a detailed description.
889 </PRE><H3><a name="h3-MOUSE_BUTTONS_123">MOUSE_BUTTONS_123</a></H3><PRE>
890 This applies only to the OS/2 EMX port. It specifies the order of
891 buttons on the mouse. OS/2 numbers a 3-button mouse inconsistently
892 from other platforms:
898 This variable lets you customize the mouse. The variable must be three
899 numeric digits 1-3 in any order, e.g., 123 or 321. If it is not
900 specified, <STRONG>ncurses</STRONG> uses 132.
903 </PRE><H3><a name="h3-NCURSES_ASSUMED_COLORS">NCURSES_ASSUMED_COLORS</a></H3><PRE>
904 Override the compiled-in assumption that the terminal's default colors
905 are white-on-black (see <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>). You may set the
906 foreground and background color values with this environment variable
907 by proving a 2-element list: foreground,background. For example, to
908 tell ncurses to not assume anything about the colors, set this to
909 "-1,-1". To make it green-on-black, set it to "2,0". Any positive
910 value from zero to the terminfo <STRONG>max_colors</STRONG> value is allowed.
913 </PRE><H3><a name="h3-NCURSES_CONSOLE2">NCURSES_CONSOLE2</a></H3><PRE>
914 This applies only to the MinGW port of ncurses.
916 The <STRONG>Console2</STRONG> program's handling of the Microsoft Console API call
917 <STRONG>CreateConsoleScreenBuffer</STRONG> is defective. Applications which use this
918 will hang. However, it is possible to simulate the action of this call
919 by mapping coordinates, explicitly saving and restoring the original
920 screen contents. Setting the environment variable <STRONG>NCGDB</STRONG> has the same
924 </PRE><H3><a name="h3-NCURSES_GPM_TERMS">NCURSES_GPM_TERMS</a></H3><PRE>
925 This applies only to ncurses configured to use the GPM interface.
927 If present, the environment variable is a list of one or more terminal
928 names against which the <STRONG>TERM</STRONG> environment variable is matched. Setting
929 it to an empty value disables the GPM interface; using the built-in
930 support for xterm, etc.
932 If the environment variable is absent, ncurses will attempt to open GPM
933 if <STRONG>TERM</STRONG> contains "linux".
936 </PRE><H3><a name="h3-NCURSES_NO_HARD_TABS">NCURSES_NO_HARD_TABS</a></H3><PRE>
937 <STRONG>Ncurses</STRONG> may use tabs as part of the cursor movement optimization. In
938 some cases, your terminal driver may not handle these properly. Set
939 this environment variable to disable the feature. You can also adjust
940 your <STRONG>stty(1)</STRONG> settings to avoid the problem.
943 </PRE><H3><a name="h3-NCURSES_NO_MAGIC_COOKIE">NCURSES_NO_MAGIC_COOKIE</a></H3><PRE>
944 Some terminals use a magic-cookie feature which requires special
945 handling to make highlighting and other video attributes display
946 properly. You can suppress the highlighting entirely for these
947 terminals by setting this environment variable.
950 </PRE><H3><a name="h3-NCURSES_NO_PADDING">NCURSES_NO_PADDING</a></H3><PRE>
951 Most of the terminal descriptions in the terminfo database are written
952 for real "hardware" terminals. Many people use terminal emulators
953 which run in a windowing environment and use curses-based applications.
954 Terminal emulators can duplicate all of the important aspects of a
955 hardware terminal, but they do not have the same limitations. The
956 chief limitation of a hardware terminal from the standpoint of your
957 application is the management of dataflow, i.e., timing. Unless a
958 hardware terminal is interfaced into a terminal concentrator (which
959 does flow control), it (or your application) must manage dataflow,
960 preventing overruns. The cheapest solution (no hardware cost) is for
961 your program to do this by pausing after operations that the terminal
962 does slowly, such as clearing the display.
964 As a result, many terminal descriptions (including the vt100) have
965 delay times embedded. You may wish to use these descriptions, but not
966 want to pay the performance penalty.
968 Set the NCURSES_NO_PADDING environment variable to disable all but
969 mandatory padding. Mandatory padding is used as a part of special
970 control sequences such as <STRONG>flash</STRONG>.
973 </PRE><H3><a name="h3-NCURSES_NO_SETBUF">NCURSES_NO_SETBUF</a></H3><PRE>
974 This setting is obsolete. Before changes
976 <STRONG>o</STRONG> started with 5.9 patch 20120825 and
978 <STRONG>o</STRONG> continued though 5.9 patch 20130126
980 <STRONG>ncurses</STRONG> enabled buffered output during terminal initialization. This
981 was done (as in SVr4 curses) for performance reasons. For testing
982 purposes, both of <STRONG>ncurses</STRONG> and certain applications, this feature was
983 made optional. Setting the NCURSES_NO_SETBUF variable disabled output
984 buffering, leaving the output in the original (usually line buffered)
987 In the current implementation, ncurses performs its own buffering and
988 does not require this workaround. It does not modify the buffering of
991 The reason for the change was to make the behavior for interrupts and
992 other signals more robust. One drawback is that certain
993 nonconventional programs would mix ordinary stdio calls with ncurses
994 calls and (usually) work. This is no longer possible since ncurses is
995 not using the buffered standard output but its own output (to the same
996 file descriptor). As a special case, the low-level calls such as <STRONG>putp</STRONG>
997 still use the standard output. But high-level curses calls do not.
1000 </PRE><H3><a name="h3-NCURSES_NO_UTF8_ACS">NCURSES_NO_UTF8_ACS</a></H3><PRE>
1001 During initialization, the <STRONG>ncurses</STRONG> library checks for special cases
1002 where VT100 line-drawing (and the corresponding alternate character set
1003 capabilities) described in the terminfo are known to be missing.
1004 Specifically, when running in a UTF-8 locale, the Linux console
1005 emulator and the GNU screen program ignore these. Ncurses checks the
1006 <STRONG>TERM</STRONG> environment variable for these. For other special cases, you
1007 should set this environment variable. Doing this tells ncurses to use
1008 Unicode values which correspond to the VT100 line-drawing glyphs. That
1009 works for the special cases cited, and is likely to work for terminal
1012 When setting this variable, you should set it to a nonzero value.
1013 Setting it to zero (or to a nonnumber) disables the special check for
1014 "linux" and "screen".
1016 As an alternative to the environment variable, ncurses checks for an
1017 extended terminfo capability <STRONG>U8</STRONG>. This is a numeric capability which
1018 can be compiled using <STRONG>tic</STRONG> <STRONG>-x</STRONG>. For example
1020 # linux console, if patched to provide working
1021 # VT100 shift-in/shift-out, with corresponding font.
1022 linux-vt100|linux console with VT100 line-graphics,
1025 # uxterm with vt100Graphics resource set to false
1026 xterm-utf8|xterm relying on UTF-8 line-graphics,
1029 The name "U8" is chosen to be two characters, to permit it to be used
1030 by applications that use ncurses' termcap interface.
1033 </PRE><H3><a name="h3-NCURSES_TRACE">NCURSES_TRACE</a></H3><PRE>
1034 During initialization, the <STRONG>ncurses</STRONG> debugging library checks the
1035 NCURSES_TRACE environment variable. If it is defined, to a numeric
1036 value, <STRONG>ncurses</STRONG> calls the <STRONG>trace</STRONG> function, using that value as the
1039 The argument values, which are defined in <STRONG>curses.h</STRONG>, provide several
1040 types of information. When running with traces enabled, your
1041 application will write the file <STRONG>trace</STRONG> to the current directory.
1043 See <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG> for more information.
1046 </PRE><H3><a name="h3-TERM">TERM</a></H3><PRE>
1047 Denotes your terminal type. Each terminal type is distinct, though
1050 <STRONG>TERM</STRONG> is commonly set by terminal emulators to help applications find a
1051 workable terminal description. Some of those choose a popular
1052 approximation, e.g., "ansi", "vt100", "xterm" rather than an exact fit.
1053 Not infrequently, your application will have problems with that
1054 approach, e.g., incorrect function-key definitions.
1056 If you set <STRONG>TERM</STRONG> in your environment, it has no effect on the operation
1057 of the terminal emulator. It only affects the way applications work
1058 within the terminal. Likewise, as a general rule (<STRONG>xterm(1)</STRONG> being a
1059 rare exception), terminal emulators which allow you to specify <STRONG>TERM</STRONG> as
1060 a parameter or configuration value do not change their behavior to
1064 </PRE><H3><a name="h3-TERMCAP">TERMCAP</a></H3><PRE>
1065 If the <STRONG>ncurses</STRONG> library has been configured with <EM>termcap</EM> support,
1066 <STRONG>ncurses</STRONG> will check for a terminal's description in termcap form if it
1067 is not available in the terminfo database.
1069 The <STRONG>TERMCAP</STRONG> environment variable contains either a terminal description
1070 (with newlines stripped out), or a file name telling where the
1071 information denoted by the <STRONG>TERM</STRONG> environment variable exists. In either
1072 case, setting it directs <STRONG>ncurses</STRONG> to ignore the usual place for this
1073 information, e.g., /etc/termcap.
1076 </PRE><H3><a name="h3-TERMINFO">TERMINFO</a></H3><PRE>
1077 <STRONG>ncurses</STRONG> can be configured to read from multiple terminal databases.
1078 The <STRONG>TERMINFO</STRONG> variable overrides the location for the default terminal
1079 database. Terminal descriptions (in terminal format) are stored in
1082 <STRONG>o</STRONG> Normally these are stored in a directory tree, using subdirectories
1083 named by the first letter of the terminal names therein.
1085 This is the scheme used in System V, which legacy Unix systems use,
1086 and the <STRONG>TERMINFO</STRONG> variable is used by <EM>curses</EM> applications on those
1087 systems to override the default location of the terminal database.
1089 <STRONG>o</STRONG> If <STRONG>ncurses</STRONG> is built to use hashed databases, then each entry in
1090 this list may be the path of a hashed database file, e.g.,
1092 /usr/share/terminfo.db
1096 /usr/share/terminfo/
1098 The hashed database uses less disk-space and is a little faster
1099 than the directory tree. However, some applications assume the
1100 existence of the directory tree, reading it directly rather than
1101 using the terminfo library calls.
1103 <STRONG>o</STRONG> If <STRONG>ncurses</STRONG> is built with a support for reading termcap files
1104 directly, then an entry in this list may be the path of a termcap
1107 <STRONG>o</STRONG> If the <STRONG>TERMINFO</STRONG> variable begins with "hex:" or "b64:", <STRONG>ncurses</STRONG> uses
1108 the remainder of that variable as a compiled terminal description.
1109 You might produce the base64 format using <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>:
1111 TERMINFO="$(infocmp -0 -Q2 -q)"
1114 The compiled description is used if it corresponds to the terminal
1115 identified by the <STRONG>TERM</STRONG> variable.
1117 Setting <STRONG>TERMINFO</STRONG> is the simplest, but not the only way to set location
1118 of the default terminal database. The complete list of database
1119 locations in order follows:
1121 <STRONG>o</STRONG> the last terminal database to which <STRONG>ncurses</STRONG> wrote, if any, is
1124 <STRONG>o</STRONG> the location specified by the TERMINFO environment variable
1126 <STRONG>o</STRONG> $HOME/.terminfo
1128 <STRONG>o</STRONG> locations listed in the TERMINFO_DIRS environment variable
1130 <STRONG>o</STRONG> one or more locations whose names are configured and compiled
1131 into the ncurses library, i.e.,
1133 <STRONG>o</STRONG> /usr/share/terminfo (corresponding to the TERMINFO_DIRS
1136 <STRONG>o</STRONG> /usr/share/terminfo (corresponding to the TERMINFO variable)
1139 </PRE><H3><a name="h3-TERMINFO_DIRS">TERMINFO_DIRS</a></H3><PRE>
1140 Specifies a list of locations to search for terminal descriptions.
1141 Each location in the list is a terminal database as described in the
1142 section on the <STRONG>TERMINFO</STRONG> variable. The list is separated by colons
1143 (i.e., ":") on Unix, semicolons on OS/2 EMX.
1145 There is no corresponding feature in System V terminfo; it is an
1146 extension developed for <STRONG>ncurses</STRONG>.
1149 </PRE><H3><a name="h3-TERMPATH">TERMPATH</a></H3><PRE>
1150 If <STRONG>TERMCAP</STRONG> does not hold a file name then <STRONG>ncurses</STRONG> checks the <STRONG>TERMPATH</STRONG>
1151 environment variable. This is a list of filenames separated by spaces
1152 or colons (i.e., ":") on Unix, semicolons on OS/2 EMX.
1154 If the <STRONG>TERMPATH</STRONG> environment variable is not set, <STRONG>ncurses</STRONG> looks in the
1157 /etc/termcap, /usr/share/misc/termcap and $HOME/.termcap,
1161 The library may be configured to disregard the following variables when
1162 the current user is the superuser (root), or if the application uses
1163 setuid or setgid permissions:
1165 $TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as $HOME.
1168 </PRE><H2><a name="h2-ALTERNATE-CONFIGURATIONS">ALTERNATE CONFIGURATIONS</a></H2><PRE>
1169 Several different configurations are possible, depending on the
1170 configure script options used when building <STRONG>ncurses</STRONG>. There are a few
1171 main options whose effects are visible to the applications developer
1172 using <STRONG>ncurses</STRONG>:
1175 The standard include for <STRONG>ncurses</STRONG> is as noted in <STRONG>SYNOPSIS</STRONG>:
1177 <STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
1179 This option is used to avoid filename conflicts when <STRONG>ncurses</STRONG> is
1180 not the main implementation of curses of the computer. If <STRONG>ncurses</STRONG>
1181 is installed disabling overwrite, it puts its headers in a
1184 <STRONG>#include</STRONG> <STRONG><ncurses/curses.h></STRONG>
1186 It also omits a symbolic link which would allow you to use
1187 <STRONG>-lcurses</STRONG> to build executables.
1190 The configure script renames the library and (if the
1191 <STRONG>--disable-overwrite</STRONG> option is used) puts the header files in a
1192 different subdirectory. All of the library names have a "w"
1193 appended to them, i.e., instead of
1195 <STRONG>-lncurses</STRONG>
1199 <STRONG>-lncursesw</STRONG>
1201 You must also enable the wide-character features in the header
1202 file when compiling for the wide-character library to use the
1203 extended (wide-character) functions. The symbol which enables
1204 these features has changed since XSI Curses, Issue 4:
1206 <STRONG>o</STRONG> Originally, the wide-character feature required the symbol
1207 <STRONG>_XOPEN_SOURCE_EXTENDED</STRONG> but that was only valid for XPG4
1210 <STRONG>o</STRONG> Later, that was deemed conflicting with <STRONG>_XOPEN_SOURCE</STRONG> defined
1213 <STRONG>o</STRONG> As of mid-2018, none of the features in this implementation
1214 require a <STRONG>_XOPEN_SOURCE</STRONG> feature greater than 600. However,
1215 X/Open Curses, Issue 7 (2009) recommends defining it to 700.
1217 <STRONG>o</STRONG> Alternatively, you can enable the feature by defining
1218 <STRONG>NCURSES_WIDECHAR</STRONG> with the caveat that some other header file
1219 than <STRONG>curses.h</STRONG> may require a specific value for <STRONG>_XOPEN_SOURCE</STRONG>
1220 (or a system-specific symbol).
1222 The <STRONG>curses.h</STRONG> file which is installed for the wide-character
1223 library is designed to be compatible with the normal library's
1224 header. Only the size of the <STRONG>WINDOW</STRONG> structure differs, and very
1225 few applications require more than a pointer to <STRONG>WINDOW</STRONG>s.
1227 If the headers are installed allowing overwrite, the wide-
1228 character library's headers should be installed last, to allow
1229 applications to be built using either library from the same set of
1233 The configure script renames the library. All of the library
1234 names have a "t" appended to them (before any "w" added by
1235 <STRONG>--enable-widec</STRONG>).
1237 The global variables such as <STRONG>LINES</STRONG> are replaced by macros to allow
1238 read-only access. At the same time, setter-functions are provided
1239 to set these values. Some applications (very few) may require
1240 changes to work with this convention.
1249 The shared and normal (static) library names differ by their
1250 suffixes, e.g., <STRONG>libncurses.so</STRONG> and <STRONG>libncurses.a</STRONG>. The debug and
1251 profiling libraries add a "_g" and a "_p" to the root names
1252 respectively, e.g., <STRONG>libncurses_g.a</STRONG> and <STRONG>libncurses_p.a</STRONG>.
1255 Low-level functions which do not depend upon whether the library
1256 supports wide-characters, are provided in the tinfo library.
1258 By doing this, it is possible to share the tinfo library between
1259 wide/normal configurations as well as reduce the size of the
1260 library when only low-level functions are needed.
1262 Those functions are described in these pages:
1264 <STRONG>o</STRONG> <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG> - miscellaneous curses extensions
1266 <STRONG>o</STRONG> <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> - <STRONG>curses</STRONG> input options
1268 <STRONG>o</STRONG> <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG> - low-level <STRONG>curses</STRONG> routines
1270 <STRONG>o</STRONG> <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG> - <STRONG>curses</STRONG> environment query routines
1272 <STRONG>o</STRONG> <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG> - <STRONG>curses</STRONG> emulation of termcap
1274 <STRONG>o</STRONG> <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> - <STRONG>curses</STRONG> interfaces to terminfo database
1276 <STRONG>o</STRONG> <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> - miscellaneous <STRONG>curses</STRONG> utility routines
1279 The <STRONG>trace</STRONG> function normally resides in the debug library, but it
1280 is sometimes useful to configure this in the shared library.
1281 Configure scripts should check for the function's existence rather
1282 than assuming it is always in the debug library.
1285 </PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
1286 <EM>/usr/share/tabset</EM>
1287 tab stop initialization database
1289 <EM>/usr/share/terminfo</EM>
1290 compiled terminal capability database
1293 </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
1294 If standard output from a <STRONG>ncurses</STRONG> program is re-directed to something
1295 which is not a tty, screen updates will be directed to standard error.
1296 This was an undocumented feature of AT&T System V Release 3 curses.
1298 See subsection "Header files" below regarding symbols exposed by
1299 inclusion of <EM>curses.h</EM>.
1302 </PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
1303 The <STRONG>ncurses</STRONG> library can be compiled with an option (<STRONG>-DUSE_GETCAP</STRONG>) that
1304 falls back to the old-style /etc/termcap file if the terminal setup
1305 code cannot find a terminfo entry corresponding to <STRONG>TERM</STRONG>. Use of this
1306 feature is not recommended, as it essentially includes an entire
1307 termcap compiler in the <STRONG>ncurses</STRONG> startup code, at significant cost in
1308 core and startup cycles.
1310 The <STRONG>ncurses</STRONG> library includes facilities for capturing mouse events on
1311 certain terminals (including xterm). See the <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> manual
1314 The <STRONG>ncurses</STRONG> library includes facilities for responding to window
1315 resizing events, e.g., when running in an xterm. See the
1316 <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> and <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG> manual pages for details. In addition,
1317 the library may be configured with a <STRONG>SIGWINCH</STRONG> handler.
1319 The <STRONG>ncurses</STRONG> library extends the fixed set of function key capabilities
1320 of terminals by allowing the application designer to define additional
1321 key sequences at runtime. See the <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG> <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>, and
1322 <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG> manual pages for details.
1324 The <STRONG>ncurses</STRONG> library can exploit the capabilities of terminals which
1325 implement the ISO-6429 SGR 39 and SGR 49 controls, which allow an
1326 application to reset the terminal to its original foreground and
1327 background colors. From the users' perspective, the application is
1328 able to draw colored text on a background whose color is set
1329 independently, providing better control over color contrasts. See the
1330 <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG> manual page for details.
1332 The <STRONG>ncurses</STRONG> library includes a function for directing application
1333 output to a printer attached to the terminal device. See the
1334 <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG> manual page for details.
1337 </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
1338 The <STRONG>ncurses</STRONG> library is intended to be BASE-level conformant with XSI
1339 Curses. The EXTENDED XSI Curses functionality (including color
1340 support) is supported.
1342 A small number of local differences (that is, individual differences
1343 between the XSI Curses and <STRONG>ncurses</STRONG> calls) are described in <STRONG>PORTABILITY</STRONG>
1344 sections of the library man pages.
1347 </PRE><H3><a name="h3-Error-checking">Error checking</a></H3><PRE>
1348 In many cases, X/Open Curses is vague about error conditions, omitting
1349 some of the SVr4 documentation.
1351 Unlike other implementations, this one checks parameters such as
1352 pointers to WINDOW structures to ensure they are not null. The main
1353 reason for providing this behavior is to guard against programmer
1354 error. The standard interface does not provide a way for the library
1355 to tell an application which of several possible errors were detected.
1356 Relying on this (or some other) extension will adversely affect the
1357 portability of curses applications.
1360 </PRE><H3><a name="h3-Extensions-versus-portability">Extensions versus portability</a></H3><PRE>
1361 Most of the extensions provided by ncurses have not been standardized.
1362 Some have been incorporated into other implementations, such as
1363 PDCurses or NetBSD curses. Here are a few to consider:
1365 <STRONG>o</STRONG> The routine <STRONG>has_key</STRONG> is not part of XPG4, nor is it present in SVr4.
1366 See the <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> manual page for details.
1368 <STRONG>o</STRONG> The routine <STRONG>slk_attr</STRONG> is not part of XPG4, nor is it present in
1369 SVr4. See the <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> manual page for details.
1371 <STRONG>o</STRONG> The routines <STRONG>getmouse</STRONG>, <STRONG>mousemask</STRONG>, <STRONG>ungetmouse</STRONG>, <STRONG>mouseinterval</STRONG>, and
1372 <STRONG>wenclose</STRONG> relating to mouse interfacing are not part of XPG4, nor
1373 are they present in SVr4. See the <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> manual page for
1376 <STRONG>o</STRONG> The routine <STRONG>mcprint</STRONG> was not present in any previous curses
1377 implementation. See the <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG> manual page for details.
1379 <STRONG>o</STRONG> The routine <STRONG>wresize</STRONG> is not part of XPG4, nor is it present in SVr4.
1380 See the <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG> manual page for details.
1382 <STRONG>o</STRONG> The WINDOW structure's internal details can be hidden from
1383 application programs. See <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG> for the discussion of
1384 <STRONG>is_scrollok</STRONG>, etc.
1386 <STRONG>o</STRONG> This implementation can be configured to provide rudimentary
1387 support for multi-threaded applications. See <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG> for
1390 <STRONG>o</STRONG> This implementation can also be configured to provide a set of
1391 functions which improve the ability to manage multiple screens.
1392 See <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG> for details.
1395 </PRE><H3><a name="h3-Padding-differences">Padding differences</a></H3><PRE>
1396 In historic curses versions, delays embedded in the capabilities <STRONG>cr</STRONG>,
1397 <STRONG>ind</STRONG>, <STRONG>cub1</STRONG>, <STRONG>ff</STRONG> and <STRONG>tab</STRONG> activated corresponding delay bits in the Unix
1398 tty driver. In this implementation, all padding is done by sending NUL
1399 bytes. This method is slightly more expensive, but narrows the
1400 interface to the Unix kernel significantly and increases the package's
1401 portability correspondingly.
1404 </PRE><H3><a name="h3-Header-files">Header files</a></H3><PRE>
1405 The header file <EM>curses.h</EM> itself includes the header files <EM>stdio.h</EM> and
1408 X/Open Curses has more to say, but does not finish the story:
1410 The inclusion of <curses.h> may make visible all symbols from the
1411 headers <stdio.h>, <term.h>, <termios.h>, and <wchar.h>.
1413 Here is a more complete story:
1415 <STRONG>o</STRONG> Starting with BSD curses, all implementations have included
1418 BSD curses included <curses.h> and <unctrl.h> from an internal
1419 header "curses.ext" ("ext" was a short name for <EM>externs</EM>).
1421 BSD curses used <stdio.h> internally (for <STRONG>printw</STRONG> and <STRONG>scanw</STRONG>), but
1422 nothing in <curses.h> itself relied upon <stdio.h>.
1424 <STRONG>o</STRONG> SVr2 curses added <STRONG><A HREF="curs_initscr.3x.html">newterm(3x)</A></STRONG>, which relies upon <stdio.h>. That
1425 is, the function prototype uses <STRONG>FILE</STRONG>.
1427 SVr4 curses added <STRONG>putwin</STRONG> and <STRONG>getwin</STRONG>, which also use <stdio.h>.
1429 X/Open Curses documents all three of these functions.
1431 SVr4 curses and X/Open Curses do not require the developer to
1432 include <stdio.h> before including <curses.h>. Both document
1433 curses showing <curses.h> as the only required header.
1435 As a result, standard <curses.h> will always include <stdio.h>.
1437 <STRONG>o</STRONG> X/Open Curses is inconsistent with respect to SVr4 regarding
1440 As noted in <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, ncurses includes <unctrl.h> from
1441 <curses.h> (like SVr4).
1443 <STRONG>o</STRONG> X/Open's comments about <term.h> and <termios.h> may refer to HP-UX
1446 HP-UX curses includes <term.h> from <curses.h> to declare <STRONG>setupterm</STRONG>
1447 in curses.h, but ncurses (and Solaris curses) do not.
1449 AIX curses includes <term.h> and <termios.h>. Again, ncurses (and
1450 Solaris curses) do not.
1452 <STRONG>o</STRONG> X/Open says that <curses.h> <EM>may</EM> include <term.h>, but there is no
1453 requirement that it do that.
1455 Some programs use functions declared in both <curses.h> and
1456 <term.h>, and must include both headers in the same module. Very
1457 old versions of AIX curses required including <curses.h> before
1458 including <term.h>.
1460 Because ncurses header files include the headers needed to define
1461 datatypes used in the headers, ncurses header files can be included
1462 in any order. But for portability, you should include <curses.h>
1463 before <term.h>.
1465 <STRONG>o</STRONG> X/Open Curses says <EM>"may</EM> <EM>make</EM> <EM>visible"</EM> because including a header
1466 file does not necessarily make all symbols in it visible (there are
1467 ifdef's to consider).
1469 For instance, in ncurses <wchar.h> <EM>may</EM> be included if the proper
1470 symbol is defined, and if ncurses is configured for wide-character
1471 support. If the header is included, its symbols may be made
1472 visible. That depends on the value used for <STRONG>_XOPEN_SOURCE</STRONG> feature
1475 <STRONG>o</STRONG> X/Open Curses documents one required header, in a special case:
1476 <stdarg.h> before <curses.h> to prototype the <STRONG>vw_printw</STRONG> and
1477 <STRONG>vw_scanw</STRONG> functions (as well as the obsolete the <STRONG>vwprintw</STRONG> and
1478 <STRONG>vwscanw</STRONG> functions). Each of those uses a <STRONG>va_list</STRONG> parameter.
1480 The two obsolete functions were introduced in SVr3. The other
1481 functions were introduced in X/Open Curses. In between, SVr4
1482 curses provided for the possibility that an application might
1483 include either <varargs.h> or <stdarg.h>. Initially, that was done
1484 by using <STRONG>void*</STRONG> for the <STRONG>va_list</STRONG> parameter. Later, a special type
1485 (defined in <stdio.h>) was introduced, to allow for compiler type-
1486 checking. That special type is always available, because <stdio.h>
1487 is always included by <curses.h>.
1489 None of the X/Open Curses implementations require an application to
1490 include <stdarg.h> before <curses.h> because they either have
1491 allowed for a special type, or (like ncurses) include <stdarg.h>
1492 directly to provide a portable interface.
1495 </PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
1496 Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey. Based on <EM>pcurses</EM>
1500 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
1501 <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> and related pages whose names begin "curs_" for detailed
1502 routine descriptions.
1503 <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
1504 <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG> for user-defined capabilities
1508 ncurses 6.4 2023-11-25 <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
1512 <li><a href="#h2-NAME">NAME</a></li>
1513 <li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
1514 <li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
1516 <li><a href="#h3-Initialization">Initialization</a></li>
1517 <li><a href="#h3-Datatypes">Datatypes</a></li>
1518 <li><a href="#h3-Environment-variables">Environment variables</a></li>
1519 <li><a href="#h3-Routine-and-Argument-Names">Routine and Argument Names</a></li>
1520 <li><a href="#h3-Routine-Name-Index">Routine Name Index</a></li>
1523 <li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
1524 <li><a href="#h2-ENVIRONMENT">ENVIRONMENT</a>
1526 <li><a href="#h3-CC-command-character">CC command-character</a></li>
1527 <li><a href="#h3-BAUDRATE">BAUDRATE</a></li>
1528 <li><a href="#h3-COLUMNS">COLUMNS</a></li>
1529 <li><a href="#h3-ESCDELAY">ESCDELAY</a></li>
1530 <li><a href="#h3-HOME">HOME</a></li>
1531 <li><a href="#h3-LINES">LINES</a></li>
1532 <li><a href="#h3-MOUSE_BUTTONS_123">MOUSE_BUTTONS_123</a></li>
1533 <li><a href="#h3-NCURSES_ASSUMED_COLORS">NCURSES_ASSUMED_COLORS</a></li>
1534 <li><a href="#h3-NCURSES_CONSOLE2">NCURSES_CONSOLE2</a></li>
1535 <li><a href="#h3-NCURSES_GPM_TERMS">NCURSES_GPM_TERMS</a></li>
1536 <li><a href="#h3-NCURSES_NO_HARD_TABS">NCURSES_NO_HARD_TABS</a></li>
1537 <li><a href="#h3-NCURSES_NO_MAGIC_COOKIE">NCURSES_NO_MAGIC_COOKIE</a></li>
1538 <li><a href="#h3-NCURSES_NO_PADDING">NCURSES_NO_PADDING</a></li>
1539 <li><a href="#h3-NCURSES_NO_SETBUF">NCURSES_NO_SETBUF</a></li>
1540 <li><a href="#h3-NCURSES_NO_UTF8_ACS">NCURSES_NO_UTF8_ACS</a></li>
1541 <li><a href="#h3-NCURSES_TRACE">NCURSES_TRACE</a></li>
1542 <li><a href="#h3-TERM">TERM</a></li>
1543 <li><a href="#h3-TERMCAP">TERMCAP</a></li>
1544 <li><a href="#h3-TERMINFO">TERMINFO</a></li>
1545 <li><a href="#h3-TERMINFO_DIRS">TERMINFO_DIRS</a></li>
1546 <li><a href="#h3-TERMPATH">TERMPATH</a></li>
1549 <li><a href="#h2-ALTERNATE-CONFIGURATIONS">ALTERNATE CONFIGURATIONS</a></li>
1550 <li><a href="#h2-FILES">FILES</a></li>
1551 <li><a href="#h2-NOTES">NOTES</a></li>
1552 <li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
1553 <li><a href="#h2-PORTABILITY">PORTABILITY</a>
1555 <li><a href="#h3-Error-checking">Error checking</a></li>
1556 <li><a href="#h3-Extensions-versus-portability">Extensions versus portability</a></li>
1557 <li><a href="#h3-Padding-differences">Padding differences</a></li>
1558 <li><a href="#h3-Header-files">Header files</a></li>
1561 <li><a href="#h2-AUTHORS">AUTHORS</a></li>
1562 <li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>