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