3 ****************************************************************************
4 * Copyright 2018-2019,2020 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.149 2020/10/03 20:15:52 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</TITLE>
39 <link rel="author" href="mailto:bug-ncurses@gnu.org">
40 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
43 <H1 class="no-header">ncurses 3x</H1>
45 <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> <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> - CRT screen handling and optimization package
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.2 (patch 20201017).
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 <STRONG>EXTENSIONS</STRONG> and <STRONG>PORTABIL-</STRONG>
70 <STRONG>ITY</STRONG> sections below and described in detail in the respective <STRONG>EXTEN-</STRONG>
71 <STRONG>SIONS</STRONG>, <STRONG>PORTABILITY</STRONG> and <STRONG>BUGS</STRONG> sections of individual man pages.
73 The <STRONG>ncurses</STRONG> library also provides many useful extensions, i.e., fea-
74 tures which cannot be implemented by a simple add-on library but which
75 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 manipula-
86 tion; output to windows and pads; reading terminal input; control over
87 terminal and <STRONG>curses</STRONG> input and output options; environment query rou-
88 tines; color manipulation; use of soft label keys; terminfo capabili-
89 ties; 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</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 exit-
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 environ-
122 ment variable <STRONG>TERM</STRONG> has been exported. <STRONG>tset(1)</STRONG> is usually responsible
123 for doing this. [See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for further details.]
126 </PRE><H3><a name="h3-Datatypes">Datatypes</a></H3><PRE>
127 The <STRONG>ncurses</STRONG> library permits manipulation of data structures, called
128 <EM>windows</EM>, which can be thought of as two-dimensional arrays of charac-
129 ters representing all or part of a CRT screen. A default window called
130 <STRONG>stdscr</STRONG>, which is the size of the terminal screen, is supplied. Others
131 may be created with <STRONG>newwin</STRONG>.
133 Note that <STRONG>curses</STRONG> does not handle overlapping windows, that's done by
134 the <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG> library. This means that you can either use <STRONG>stdscr</STRONG> or
135 divide the screen into tiled windows and not using <STRONG>stdscr</STRONG> at all. Mix-
136 ing the two will result in unpredictable, and undesired, effects.
138 Windows are referred to by variables declared as <STRONG>WINDOW</STRONG> <STRONG>*</STRONG>. These data
139 structures are manipulated with routines described here and elsewhere
140 in the <STRONG>ncurses</STRONG> manual pages. Among those, the most basic routines are
141 <STRONG>move</STRONG> and <STRONG>addch</STRONG>. More general versions of these routines are included
142 with names beginning with <STRONG>w</STRONG>, allowing the user to specify a window.
143 The routines not beginning with <STRONG>w</STRONG> affect <STRONG>stdscr</STRONG>.
145 After using routines to manipulate a window, <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG> is called,
146 telling <STRONG>curses</STRONG> to make the user's CRT screen look like <STRONG>stdscr</STRONG>. The
147 characters in a window are actually of type <STRONG>chtype</STRONG>, (character and
148 attribute data) so that other information about the character may also
149 be stored with each character.
151 Special windows called <EM>pads</EM> may also be manipulated. These are windows
152 which are not constrained to the size of the screen and whose contents
153 need not be completely displayed. See <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG> for more informa-
156 In addition to drawing characters on the screen, video attributes and
157 colors may be supported, causing the characters to show up in such
158 modes as underlined, in reverse video, or in color on terminals that
159 support such display enhancements. Line drawing characters may be
160 specified to be output. On input, <STRONG>curses</STRONG> is also able to translate
161 arrow and function keys that transmit escape sequences into single val-
162 ues. The video attributes, line drawing characters, and input values
163 use names, defined in <STRONG><curses.h></STRONG>, such as <STRONG>A_REVERSE</STRONG>, <STRONG>ACS_HLINE</STRONG>, and
164 <STRONG>KEY_LEFT</STRONG>.
167 </PRE><H3><a name="h3-Environment-variables">Environment variables</a></H3><PRE>
168 If the environment variables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> are set, or if the pro-
169 gram is executing in a window environment, line and column information
170 in the environment will override information read by <EM>terminfo</EM>. This
171 would affect a program running in an AT&T 630 layer, for example, where
172 the size of a screen is changeable (see <STRONG>ENVIRONMENT</STRONG>).
174 If the environment variable <STRONG>TERMINFO</STRONG> is defined, any program using
175 <STRONG>curses</STRONG> checks for a local terminal definition before checking in the
176 standard place. For example, if <STRONG>TERM</STRONG> is set to <STRONG>att4424</STRONG>, then the com-
177 piled terminal definition is found in
179 <STRONG>/usr/share/terminfo/a/att4424</STRONG>.
181 (The <STRONG>a</STRONG> is copied from the first letter of <STRONG>att4424</STRONG> to avoid creation of
182 huge directories.) However, if <STRONG>TERMINFO</STRONG> is set to <STRONG>$HOME/myterms</STRONG>,
183 <STRONG>curses</STRONG> first checks
185 <STRONG>$HOME/myterms/a/att4424</STRONG>,
187 and if that fails, it then checks
189 <STRONG>/usr/share/terminfo/a/att4424</STRONG>.
191 This is useful for developing experimental definitions or when write
192 permission in <STRONG>/usr/share/terminfo</STRONG> is not available.
194 The integer variables <STRONG>LINES</STRONG> and <STRONG>COLS</STRONG> are defined in <STRONG><curses.h></STRONG> and will
195 be filled in by <STRONG>initscr</STRONG> with the size of the screen. The constants
196 <STRONG>TRUE</STRONG> and <STRONG>FALSE</STRONG> have the values <STRONG>1</STRONG> and <STRONG>0</STRONG>, respectively.
198 The <STRONG>curses</STRONG> routines also define the <STRONG>WINDOW</STRONG> <STRONG>*</STRONG> variable <STRONG>curscr</STRONG> which is
199 used for certain low-level operations like clearing and redrawing a
200 screen containing garbage. The <STRONG>curscr</STRONG> can be used in only a few rou-
204 </PRE><H3><a name="h3-Routine-and-Argument-Names">Routine and Argument Names</a></H3><PRE>
205 Many <STRONG>curses</STRONG> routines have two or more versions. The routines prefixed
206 with <STRONG>w</STRONG> require a window argument. The routines prefixed with <STRONG>p</STRONG> require
207 a pad argument. Those without a prefix generally use <STRONG>stdscr</STRONG>.
209 The routines prefixed with <STRONG>mv</STRONG> require a <EM>y</EM> and <EM>x</EM> coordinate to move to
210 before performing the appropriate action. The <STRONG>mv</STRONG> routines imply a call
211 to <STRONG>move</STRONG> before the call to the other routine. The coordinate <EM>y</EM> always
212 refers to the row (of the window), and <EM>x</EM> always refers to the column.
213 The upper left-hand corner is always (0,0), not (1,1).
215 The routines prefixed with <STRONG>mvw</STRONG> take both a window argument and <EM>x</EM> and <EM>y</EM>
216 coordinates. The window argument is always specified before the coor-
219 In each case, <EM>win</EM> is the window affected, and <EM>pad</EM> is the pad affected;
220 <EM>win</EM> and <EM>pad</EM> are always pointers to type <STRONG>WINDOW</STRONG>.
222 Option setting routines require a Boolean flag <EM>bf</EM> with the value <STRONG>TRUE</STRONG>
223 or <STRONG>FALSE</STRONG>; <EM>bf</EM> is always of type <STRONG>bool</STRONG>. Most of the data types used in
224 the library routines, such as <STRONG>WINDOW</STRONG>, <STRONG>SCREEN</STRONG>, <STRONG>bool</STRONG>, and <STRONG>chtype</STRONG> are
225 defined in <STRONG><curses.h></STRONG>. Types used for the terminfo routines such as
226 <STRONG>TERMINAL</STRONG> are defined in <STRONG><term.h></STRONG>.
228 This manual page describes functions which may appear in any configura-
229 tion of the library. There are two common configurations of the
233 the "normal" library, which handles 8-bit characters. The nor-
234 mal (8-bit) library stores characters combined with attributes
235 in <STRONG>chtype</STRONG> data.
237 Attributes alone (no corresponding character) may be stored in
238 <STRONG>chtype</STRONG> or the equivalent <STRONG>attr_t</STRONG> data. In either case, the data
239 is stored in something like an integer.
241 Each cell (row and column) in a <STRONG>WINDOW</STRONG> is stored as a <STRONG>chtype</STRONG>.
244 the so-called "wide" library, which handles multibyte charac-
245 ters (see the section on <STRONG>ALTERNATE</STRONG> <STRONG>CONFIGURATIONS</STRONG>). The "wide"
246 library includes all of the calls from the "normal" library.
247 It adds about one third more calls using data types which store
248 multibyte characters:
250 <STRONG>cchar_t</STRONG>
251 corresponds to <STRONG>chtype</STRONG>. However it is a structure, because
252 more data is stored than can fit into an integer. The
253 characters are large enough to require a full integer
254 value - and there may be more than one character per cell.
255 The video attributes and color are stored in separate
256 fields of the structure.
258 Each cell (row and column) in a <STRONG>WINDOW</STRONG> is stored as a
259 <STRONG>cchar_t</STRONG>.
261 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
262 retrieve the data from a <STRONG>cchar_t</STRONG> structure.
264 <STRONG>wchar_t</STRONG>
265 stores a "wide" character. Like <STRONG>chtype</STRONG>, this may be an
268 <STRONG>wint_t</STRONG>
269 stores a <STRONG>wchar_t</STRONG> or <STRONG>WEOF</STRONG> - not the same, though both may
272 The "wide" library provides new functions which are analogous
273 to functions in the "normal" library. There is a naming con-
274 vention which relates many of the normal/wide variants: a "_w"
275 is inserted into the name. For example, <STRONG>waddch</STRONG> becomes
276 <STRONG>wadd_wch</STRONG>.
279 </PRE><H3><a name="h3-Routine-Name-Index">Routine Name Index</a></H3><PRE>
280 The following table lists the <STRONG>curses</STRONG> routines provided in the "normal"
281 and "wide" libraries and the names of the manual pages on which they
282 are described. Routines flagged with "*" are ncurses-specific, not
283 described by XPG4 or present in SVr4.
285 <STRONG>curses</STRONG> Routine Name Manual Page Name
286 ---------------------------------------------
287 COLOR_PAIR <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
288 PAIR_NUMBER <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
289 add_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
290 add_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
291 add_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
292 addch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
293 addchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
294 addchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
295 addnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
296 addnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
297 addstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
298 addwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
299 alloc_pair <STRONG><A HREF="new_pair.3x.html">new_pair(3x)</A></STRONG>*
300 assume_default_colors <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>*
301 attr_get <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
302 attr_off <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
303 attr_on <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
304 attr_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
305 attroff <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
306 attron <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
307 attrset <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
308 baudrate <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
309 beep <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
310 bkgd <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
311 bkgdset <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
312 bkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
313 bkgrndset <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
314 border <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
315 border_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
317 box <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
318 box_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
319 can_change_color <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
320 cbreak <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
321 chgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
322 clear <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
323 clearok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
324 clrtobot <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
325 clrtoeol <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
326 color_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
327 color_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
328 copywin <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
329 curs_set <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
330 curses_trace <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
331 curses_version <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>*
332 def_prog_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
333 def_shell_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
334 define_key <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>*
335 del_curterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
336 delay_output <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
337 delch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
338 deleteln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
339 delscreen <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
340 delwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
341 derwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
342 doupdate <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
343 dupwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
344 echo <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
345 echo_wchar <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
346 echochar <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
347 endwin <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
348 erase <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
349 erasechar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
350 erasewchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
351 exit_curses <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>*
352 exit_terminfo <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>*
353 extended_color_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
354 extended_pair_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
355 extended_slk_color <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>*
356 filter <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
357 find_pair <STRONG><A HREF="new_pair.3x.html">new_pair(3x)</A></STRONG>*
358 flash <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
359 flushinp <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
360 free_pair <STRONG><A HREF="new_pair.3x.html">new_pair(3x)</A></STRONG>*
361 get_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
362 get_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
363 getattrs <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
364 getbegx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
365 getbegy <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
366 getbegyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
367 getbkgd <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
368 getbkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
369 getcchar <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
370 getch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
371 getcurx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
372 getcury <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
373 getmaxx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
374 getmaxy <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
375 getmaxyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
376 getmouse <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
377 getn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
378 getnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
379 getparx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
380 getpary <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
381 getparyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
383 getstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
384 getsyx <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
385 getwin <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
386 getyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
387 halfdelay <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
388 has_colors <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
389 has_ic <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
390 has_il <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
391 has_key <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>*
392 has_mouse <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
393 hline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
394 hline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
395 idcok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
396 idlok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
397 immedok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
398 in_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
399 in_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
400 in_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
401 inch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
402 inchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
403 inchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
404 init_color <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
405 init_extended_color <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
406 init_extended_pair <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
407 init_pair <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
408 initscr <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
409 innstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
410 innwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
411 ins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
412 ins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
413 ins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
414 insch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
415 insdelln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
416 insertln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
417 insnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
418 insstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
419 instr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
420 intrflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
421 inwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
422 is_cleared <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
423 is_idcok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
424 is_idlok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
425 is_immedok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
426 is_keypad <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
427 is_leaveok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
428 is_linetouched <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
429 is_nodelay <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
430 is_notimeout <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
431 is_pad <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
432 is_scrollok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
433 is_subwin <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
434 is_syncok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
435 is_term_resized <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>*
436 is_wintouched <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
437 isendwin <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
438 key_defined <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>*
439 key_name <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
440 keybound <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>*
441 keyname <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
442 keyok <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>*
443 keypad <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
444 killchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
445 killwchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
446 leaveok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
447 longname <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
449 mcprint <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>*
450 meta <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
451 mouse_trafo <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
452 mouseinterval <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
453 mousemask <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
454 move <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
455 mvadd_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
456 mvadd_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
457 mvadd_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
458 mvaddch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
459 mvaddchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
460 mvaddchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
461 mvaddnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
462 mvaddnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
463 mvaddstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
464 mvaddwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
465 mvchgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
466 mvcur <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
467 mvdelch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
468 mvderwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
469 mvget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
470 mvget_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
471 mvgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
472 mvgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
473 mvgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
474 mvgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
475 mvhline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
476 mvhline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
477 mvin_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
478 mvin_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
479 mvin_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
480 mvinch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
481 mvinchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
482 mvinchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
483 mvinnstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
484 mvinnwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
485 mvins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
486 mvins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
487 mvins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
488 mvinsch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
489 mvinsnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
490 mvinsstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
491 mvinstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
492 mvinwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
493 mvprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
494 mvscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
495 mvvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
496 mvvline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
497 mvwadd_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
498 mvwadd_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
499 mvwadd_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
500 mvwaddch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
501 mvwaddchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
502 mvwaddchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
503 mvwaddnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
504 mvwaddnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
505 mvwaddstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
506 mvwaddwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
507 mvwchgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
508 mvwdelch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
509 mvwget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
510 mvwget_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
511 mvwgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
512 mvwgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
513 mvwgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
515 mvwgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
516 mvwhline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
517 mvwhline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
518 mvwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
519 mvwin_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
520 mvwin_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
521 mvwin_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
522 mvwinch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
523 mvwinchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
524 mvwinchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
525 mvwinnstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
526 mvwinnwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
527 mvwins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
528 mvwins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
529 mvwins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
530 mvwinsch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
531 mvwinsnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
532 mvwinsstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
533 mvwinstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
534 mvwinwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
535 mvwprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
536 mvwscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
537 mvwvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
538 mvwvline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
539 napms <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
540 newpad <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
541 newterm <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
542 newwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
543 nl <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
544 nocbreak <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
545 nodelay <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
546 noecho <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
547 nofilter <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>*
548 nonl <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
549 noqiflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
550 noraw <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
551 notimeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
552 overlay <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
553 overwrite <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
554 pair_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
555 pecho_wchar <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>*
556 pechochar <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
557 pnoutrefresh <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
558 prefresh <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
559 printw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
560 putp <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
561 putwin <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
562 qiflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
563 raw <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
564 redrawwin <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
565 refresh <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
566 reset_color_pairs <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
567 reset_prog_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
568 reset_shell_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
569 resetty <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
570 resize_term <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>*
571 resizeterm <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>*
572 restartterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
573 ripoffline <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
574 savetty <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
575 scanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
576 scr_dump <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
577 scr_init <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
578 scr_restore <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
579 scr_set <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
581 scrl <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
582 scroll <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
583 scrollok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
584 set_curterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
585 set_term <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
586 setcchar <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
587 setscrreg <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
588 setsyx <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
589 setterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
590 setupterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
591 slk_attr <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>*
592 slk_attr_off <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
593 slk_attr_on <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
594 slk_attr_set <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
595 slk_attroff <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
596 slk_attron <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
597 slk_attrset <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
598 slk_clear <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
599 slk_color <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
600 slk_init <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
601 slk_label <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
602 slk_noutrefresh <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
603 slk_refresh <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
604 slk_restore <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
605 slk_set <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
606 slk_touch <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
607 slk_wset <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>*
608 standend <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
609 standout <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
610 start_color <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
611 subpad <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
612 subwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
613 syncok <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
614 term_attrs <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
615 termattrs <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
616 termname <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
617 tgetent <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
618 tgetflag <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
619 tgetnum <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
620 tgetstr <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
621 tgoto <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
622 tigetflag <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
623 tigetnum <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
624 tigetstr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
625 timeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
626 tiparm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>*
627 touchline <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
628 touchwin <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
629 tparm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
630 tputs <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
631 tputs <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
632 trace <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
633 typeahead <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
634 unctrl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
635 unget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
636 ungetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
637 ungetmouse <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
638 untouchwin <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
639 use_default_colors <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>*
640 use_env <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
641 use_extended_names <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>*
642 use_legacy_coding <STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG>*
643 use_tioctl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>*
644 vid_attr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
645 vid_puts <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
647 vidattr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
648 vidputs <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
649 vline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
650 vline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
651 vw_printw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
652 vw_scanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
653 vwprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
654 vwscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
655 wadd_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
656 wadd_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
657 wadd_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
658 waddch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
659 waddchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
660 waddchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
661 waddnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
662 waddnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
663 waddstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
664 waddwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
665 wattr_get <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
666 wattr_off <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
667 wattr_on <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
668 wattr_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
669 wattroff <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
670 wattron <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
671 wattrset <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
672 wbkgd <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
673 wbkgdset <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
674 wbkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
675 wbkgrndset <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
676 wborder <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
677 wborder_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
678 wchgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
679 wclear <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
680 wclrtobot <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
681 wclrtoeol <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
682 wcolor_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
683 wcursyncup <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
684 wdelch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
685 wdeleteln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
686 wecho_wchar <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
687 wechochar <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
688 wenclose <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
689 werase <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
690 wget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
691 wget_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
692 wgetbkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
693 wgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
694 wgetdelay <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
695 wgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
696 wgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
697 wgetparent <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
698 wgetscrreg <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
699 wgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
700 whline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
701 whline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
702 win_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
703 win_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
704 win_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
705 winch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
706 winchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
707 winchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
708 winnstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
709 winnwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
710 wins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
711 wins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
713 wins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
714 winsch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
715 winsdelln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
716 winsertln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
717 winsnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
718 winsstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
719 winstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
720 winwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
721 wmouse_trafo <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
722 wmove <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
723 wnoutrefresh <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
724 wprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
725 wredrawln <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
726 wrefresh <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
727 wresize <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>*
728 wscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
729 wscrl <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
730 wsetscrreg <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
731 wstandend <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
732 wstandout <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
733 wsyncdown <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
734 wsyncup <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
735 wtimeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
736 wtouchln <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
737 wunctrl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
738 wvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
739 wvline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
741 Depending on the configuration, additional sets of functions may be
744 <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG> - curses memory-leak checking
746 <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG> - curses screen-pointer extension
748 <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG> - curses thread support
750 <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG> - curses debugging routines
753 </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
754 Routines that return an integer return <STRONG>ERR</STRONG> upon failure and an integer
755 value other than <STRONG>ERR</STRONG> upon successful completion, unless otherwise noted
756 in the routine descriptions.
758 As a general rule, routines check for null pointers passed as parame-
759 ters, and handle this as an error.
761 All macros return the value of the <STRONG>w</STRONG> version, except <STRONG>setscrreg</STRONG>,
762 <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>, and <STRONG>getmaxyx</STRONG>. The return values of
763 <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>, and <STRONG>getmaxyx</STRONG> are undefined
764 (i.e., these should not be used as the right-hand side of assignment
767 Functions with a "mv" prefix first perform a cursor movement using
768 <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
769 the window pointer is null. Most "mv"-prefixed functions (except vari-
770 adic functions such as <STRONG>mvprintw</STRONG>) are provided both as macros and func-
773 Routines that return pointers return <STRONG>NULL</STRONG> on error.
776 </PRE><H2><a name="h2-ENVIRONMENT">ENVIRONMENT</a></H2><PRE>
777 The following environment symbols are useful for customizing the run-
778 time behavior of the <STRONG>ncurses</STRONG> library. The most important ones have
779 been already discussed in detail.
782 </PRE><H3><a name="h3-CC-command-character">CC command-character</a></H3><PRE>
783 When set, change occurrences of the command_character (i.e., the <STRONG>cmdch</STRONG>
784 capability) of the loaded terminfo entries to the value of this vari-
785 able. Very few terminfo entries provide this feature.
787 Because this name is also used in development environments to represent
788 the C compiler's name, <STRONG>ncurses</STRONG> ignores it if it does not happen to be a
792 </PRE><H3><a name="h3-BAUDRATE">BAUDRATE</a></H3><PRE>
793 The debugging library checks this environment variable when the appli-
794 cation has redirected output to a file. The variable's numeric value
795 is used for the baudrate. If no value is found, <STRONG>ncurses</STRONG> uses 9600.
796 This allows testers to construct repeatable test-cases that take into
797 account costs that depend on baudrate.
800 </PRE><H3><a name="h3-COLUMNS">COLUMNS</a></H3><PRE>
801 Specify the width of the screen in characters. Applications running in
802 a windowing environment usually are able to obtain the width of the
803 window in which they are executing. If neither the <STRONG>COLUMNS</STRONG> value nor
804 the terminal's screen size is available, <STRONG>ncurses</STRONG> uses the size which
805 may be specified in the terminfo database (i.e., the <STRONG>cols</STRONG> capability).
807 It is important that your application use a correct size for the
808 screen. This is not always possible because your application may be
809 running on a host which does not honor NAWS (Negotiations About Window
810 Size), or because you are temporarily running as another user. How-
811 ever, setting <STRONG>COLUMNS</STRONG> and/or <STRONG>LINES</STRONG> overrides the library's use of the
812 screen size obtained from the operating system.
814 Either <STRONG>COLUMNS</STRONG> or <STRONG>LINES</STRONG> symbols may be specified independently. This
815 is mainly useful to circumvent legacy misfeatures of terminal descrip-
816 tions, e.g., xterm which commonly specifies a 65 line screen. For best
817 results, <STRONG>lines</STRONG> and <STRONG>cols</STRONG> should not be specified in a terminal descrip-
818 tion for terminals which are run as emulations.
820 Use the <STRONG>use_env</STRONG> function to disable all use of external environment
821 (but not including system calls) to determine the screen size. Use the
822 <STRONG>use_tioctl</STRONG> function to update <STRONG>COLUMNS</STRONG> or <STRONG>LINES</STRONG> to match the screen size
823 obtained from system calls or the terminal database.
826 </PRE><H3><a name="h3-ESCDELAY">ESCDELAY</a></H3><PRE>
827 Specifies the total time, in milliseconds, for which ncurses will await
828 a character sequence, e.g., a function key. The default value, 1000
829 milliseconds, is enough for most uses. However, it is made a variable
830 to accommodate unusual applications.
832 The most common instance where you may wish to change this value is to
833 work with slow hosts, e.g., running on a network. If the host cannot
834 read characters rapidly enough, it will have the same effect as if the
835 terminal did not send characters rapidly enough. The library will
838 Note that xterm mouse events are built up from character sequences
839 received from the xterm. If your application makes heavy use of multi-
840 ple-clicking, you may wish to lengthen this default value because the
841 timeout applies to the composed multi-click event as well as the indi-
844 In addition to the environment variable, this implementation provides a
845 global variable with the same name. Portable applications should not
846 rely upon the presence of ESCDELAY in either form, but setting the
847 environment variable rather than the global variable does not create
848 problems when compiling an application.
851 </PRE><H3><a name="h3-HOME">HOME</a></H3><PRE>
852 Tells <STRONG>ncurses</STRONG> where your home directory is. That is where it may read
853 and write auxiliary terminal descriptions:
859 </PRE><H3><a name="h3-LINES">LINES</a></H3><PRE>
860 Like COLUMNS, specify the height of the screen in characters. See COL-
861 UMNS for a detailed description.
864 </PRE><H3><a name="h3-MOUSE_BUTTONS_123">MOUSE_BUTTONS_123</a></H3><PRE>
865 This applies only to the OS/2 EMX port. It specifies the order of but-
866 tons on the mouse. OS/2 numbers a 3-button mouse inconsistently from
873 This variable lets you customize the mouse. The variable must be three
874 numeric digits 1-3 in any order, e.g., 123 or 321. If it is not speci-
875 fied, <STRONG>ncurses</STRONG> uses 132.
878 </PRE><H3><a name="h3-NCURSES_ASSUMED_COLORS">NCURSES_ASSUMED_COLORS</a></H3><PRE>
879 Override the compiled-in assumption that the terminal's default colors
880 are white-on-black (see <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>). You may set the fore-
881 ground and background color values with this environment variable by
882 proving a 2-element list: foreground,background. For example, to tell
883 ncurses to not assume anything about the colors, set this to "-1,-1".
884 To make it green-on-black, set it to "2,0". Any positive value from
885 zero to the terminfo <STRONG>max_colors</STRONG> value is allowed.
888 </PRE><H3><a name="h3-NCURSES_CONSOLE2">NCURSES_CONSOLE2</a></H3><PRE>
889 This applies only to the MinGW port of ncurses.
891 The <STRONG>Console2</STRONG> program's handling of the Microsoft Console API call <STRONG>Cre-</STRONG>
892 <STRONG>ateConsoleScreenBuffer</STRONG> is defective. Applications which use this will
893 hang. However, it is possible to simulate the action of this call by
894 mapping coordinates, explicitly saving and restoring the original
895 screen contents. Setting the environment variable <STRONG>NCGDB</STRONG> has the same
899 </PRE><H3><a name="h3-NCURSES_GPM_TERMS">NCURSES_GPM_TERMS</a></H3><PRE>
900 This applies only to ncurses configured to use the GPM interface.
902 If present, the environment variable is a list of one or more terminal
903 names against which the <STRONG>TERM</STRONG> environment variable is matched. Setting
904 it to an empty value disables the GPM interface; using the built-in
905 support for xterm, etc.
907 If the environment variable is absent, ncurses will attempt to open GPM
908 if <STRONG>TERM</STRONG> contains "linux".
911 </PRE><H3><a name="h3-NCURSES_NO_HARD_TABS">NCURSES_NO_HARD_TABS</a></H3><PRE>
912 <STRONG>Ncurses</STRONG> may use tabs as part of the cursor movement optimization. In
913 some cases, your terminal driver may not handle these properly. Set
914 this environment variable to disable the feature. You can also adjust
915 your <STRONG>stty</STRONG> settings to avoid the problem.
918 </PRE><H3><a name="h3-NCURSES_NO_MAGIC_COOKIE">NCURSES_NO_MAGIC_COOKIE</a></H3><PRE>
919 Some terminals use a magic-cookie feature which requires special han-
920 dling to make highlighting and other video attributes display properly.
921 You can suppress the highlighting entirely for these terminals by set-
922 ting this environment variable.
925 </PRE><H3><a name="h3-NCURSES_NO_PADDING">NCURSES_NO_PADDING</a></H3><PRE>
926 Most of the terminal descriptions in the terminfo database are written
927 for real "hardware" terminals. Many people use terminal emulators
928 which run in a windowing environment and use curses-based applications.
929 Terminal emulators can duplicate all of the important aspects of a
930 hardware terminal, but they do not have the same limitations. The
931 chief limitation of a hardware terminal from the standpoint of your
932 application is the management of dataflow, i.e., timing. Unless a
933 hardware terminal is interfaced into a terminal concentrator (which
934 does flow control), it (or your application) must manage dataflow, pre-
935 venting overruns. The cheapest solution (no hardware cost) is for your
936 program to do this by pausing after operations that the terminal does
937 slowly, such as clearing the display.
939 As a result, many terminal descriptions (including the vt100) have
940 delay times embedded. You may wish to use these descriptions, but not
941 want to pay the performance penalty.
943 Set the NCURSES_NO_PADDING environment variable to disable all but
944 mandatory padding. Mandatory padding is used as a part of special con-
945 trol sequences such as <EM>flash</EM>.
948 </PRE><H3><a name="h3-NCURSES_NO_SETBUF">NCURSES_NO_SETBUF</a></H3><PRE>
949 This setting is obsolete. Before changes
951 <STRONG>o</STRONG> started with 5.9 patch 20120825 and
953 <STRONG>o</STRONG> continued though 5.9 patch 20130126
955 <STRONG>ncurses</STRONG> enabled buffered output during terminal initialization. This
956 was done (as in SVr4 curses) for performance reasons. For testing pur-
957 poses, both of <STRONG>ncurses</STRONG> and certain applications, this feature was made
958 optional. Setting the NCURSES_NO_SETBUF variable disabled output
959 buffering, leaving the output in the original (usually line buffered)
962 In the current implementation, ncurses performs its own buffering and
963 does not require this workaround. It does not modify the buffering of
966 The reason for the change was to make the behavior for interrupts and
967 other signals more robust. One drawback is that certain nonconven-
968 tional programs would mix ordinary stdio calls with ncurses calls and
969 (usually) work. This is no longer possible since ncurses is not using
970 the buffered standard output but its own output (to the same file
971 descriptor). As a special case, the low-level calls such as <STRONG>putp</STRONG> still
972 use the standard output. But high-level curses calls do not.
975 </PRE><H3><a name="h3-NCURSES_NO_UTF8_ACS">NCURSES_NO_UTF8_ACS</a></H3><PRE>
976 During initialization, the <STRONG>ncurses</STRONG> library checks for special cases
977 where VT100 line-drawing (and the corresponding alternate character set
978 capabilities) described in the terminfo are known to be missing.
979 Specifically, when running in a UTF-8 locale, the Linux console emula-
980 tor and the GNU screen program ignore these. Ncurses checks the <STRONG>TERM</STRONG>
981 environment variable for these. For other special cases, you should
982 set this environment variable. Doing this tells ncurses to use Unicode
983 values which correspond to the VT100 line-drawing glyphs. That works
984 for the special cases cited, and is likely to work for terminal emula-
987 When setting this variable, you should set it to a nonzero value. Set-
988 ting it to zero (or to a nonnumber) disables the special check for
989 "linux" and "screen".
991 As an alternative to the environment variable, ncurses checks for an
992 extended terminfo capability <STRONG>U8</STRONG>. This is a numeric capability which
993 can be compiled using <STRONG>tic</STRONG> <STRONG>-x</STRONG>. For example
995 # linux console, if patched to provide working
996 # VT100 shift-in/shift-out, with corresponding font.
997 linux-vt100|linux console with VT100 line-graphics,
1000 # uxterm with vt100Graphics resource set to false
1001 xterm-utf8|xterm relying on UTF-8 line-graphics,
1004 The name "U8" is chosen to be two characters, to permit it to be used
1005 by applications that use ncurses' termcap interface.
1008 </PRE><H3><a name="h3-NCURSES_TRACE">NCURSES_TRACE</a></H3><PRE>
1009 During initialization, the <STRONG>ncurses</STRONG> debugging library checks the
1010 NCURSES_TRACE environment variable. If it is defined, to a numeric
1011 value, <STRONG>ncurses</STRONG> calls the <STRONG>trace</STRONG> function, using that value as the argu-
1014 The argument values, which are defined in <STRONG>curses.h</STRONG>, provide several
1015 types of information. When running with traces enabled, your applica-
1016 tion will write the file <STRONG>trace</STRONG> to the current directory.
1018 See <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG> for more information.
1021 </PRE><H3><a name="h3-TERM">TERM</a></H3><PRE>
1022 Denotes your terminal type. Each terminal type is distinct, though
1025 <STRONG>TERM</STRONG> is commonly set by terminal emulators to help applications find a
1026 workable terminal description. Some of those choose a popular approxi-
1027 mation, e.g., "ansi", "vt100", "xterm" rather than an exact fit. Not
1028 infrequently, your application will have problems with that approach,
1029 e.g., incorrect function-key definitions.
1031 If you set <STRONG>TERM</STRONG> in your environment, it has no effect on the operation
1032 of the terminal emulator. It only affects the way applications work
1033 within the terminal. Likewise, as a general rule (<STRONG>xterm</STRONG> being a rare
1034 exception), terminal emulators which allow you to specify <STRONG>TERM</STRONG> as a
1035 parameter or configuration value do not change their behavior to match
1039 </PRE><H3><a name="h3-TERMCAP">TERMCAP</a></H3><PRE>
1040 If the <STRONG>ncurses</STRONG> library has been configured with <EM>termcap</EM> support,
1041 <STRONG>ncurses</STRONG> will check for a terminal's description in termcap form if it
1042 is not available in the terminfo database.
1044 The <STRONG>TERMCAP</STRONG> environment variable contains either a terminal description
1045 (with newlines stripped out), or a file name telling where the informa-
1046 tion denoted by the <STRONG>TERM</STRONG> environment variable exists. In either case,
1047 setting it directs <STRONG>ncurses</STRONG> to ignore the usual place for this informa-
1048 tion, e.g., /etc/termcap.
1051 </PRE><H3><a name="h3-TERMINFO">TERMINFO</a></H3><PRE>
1052 <STRONG>ncurses</STRONG> can be configured to read from multiple terminal databases.
1053 The <STRONG>TERMINFO</STRONG> variable overrides the location for the default terminal
1054 database. Terminal descriptions (in terminal format) are stored in
1057 <STRONG>o</STRONG> Normally these are stored in a directory tree, using subdirectories
1058 named by the first letter of the terminal names therein.
1060 This is the scheme used in System V, which legacy Unix systems use,
1061 and the <STRONG>TERMINFO</STRONG> variable is used by <EM>curses</EM> applications on those
1062 systems to override the default location of the terminal database.
1064 <STRONG>o</STRONG> If <STRONG>ncurses</STRONG> is built to use hashed databases, then each entry in
1065 this list may be the path of a hashed database file, e.g.,
1067 /usr/share/terminfo.db
1071 /usr/share/terminfo/
1073 The hashed database uses less disk-space and is a little faster
1074 than the directory tree. However, some applications assume the
1075 existence of the directory tree, reading it directly rather than
1076 using the terminfo library calls.
1078 <STRONG>o</STRONG> If <STRONG>ncurses</STRONG> is built with a support for reading termcap files
1079 directly, then an entry in this list may be the path of a termcap
1082 <STRONG>o</STRONG> If the <STRONG>TERMINFO</STRONG> variable begins with "hex:" or "b64:", <STRONG>ncurses</STRONG> uses
1083 the remainder of that variable as a compiled terminal description.
1084 You might produce the base64 format using <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>:
1086 TERMINFO="$(infocmp -0 -Q2 -q)"
1089 The compiled description is used if it corresponds to the terminal
1090 identified by the <STRONG>TERM</STRONG> variable.
1092 Setting <STRONG>TERMINFO</STRONG> is the simplest, but not the only way to set location
1093 of the default terminal database. The complete list of database loca-
1094 tions in order follows:
1096 <STRONG>o</STRONG> the last terminal database to which <STRONG>ncurses</STRONG> wrote, if any, is
1099 <STRONG>o</STRONG> the location specified by the TERMINFO environment variable
1101 <STRONG>o</STRONG> $HOME/.terminfo
1103 <STRONG>o</STRONG> locations listed in the TERMINFO_DIRS environment variable
1105 <STRONG>o</STRONG> one or more locations whose names are configured and compiled
1106 into the ncurses library, i.e.,
1108 <STRONG>o</STRONG> /usr/local/ncurses/share/terminfo:/usr/share/terminfo (corre-
1109 sponding to the TERMINFO_DIRS variable)
1111 <STRONG>o</STRONG> /usr/share/terminfo (corresponding to the TERMINFO variable)
1114 </PRE><H3><a name="h3-TERMINFO_DIRS">TERMINFO_DIRS</a></H3><PRE>
1115 Specifies a list of locations to search for terminal descriptions.
1116 Each location in the list is a terminal database as described in the
1117 section on the <STRONG>TERMINFO</STRONG> variable. The list is separated by colons
1118 (i.e., ":") on Unix, semicolons on OS/2 EMX.
1120 There is no corresponding feature in System V terminfo; it is an exten-
1121 sion developed for <STRONG>ncurses</STRONG>.
1124 </PRE><H3><a name="h3-TERMPATH">TERMPATH</a></H3><PRE>
1125 If <STRONG>TERMCAP</STRONG> does not hold a file name then <STRONG>ncurses</STRONG> checks the <STRONG>TERMPATH</STRONG>
1126 environment variable. This is a list of filenames separated by spaces
1127 or colons (i.e., ":") on Unix, semicolons on OS/2 EMX.
1129 If the <STRONG>TERMPATH</STRONG> environment variable is not set, <STRONG>ncurses</STRONG> looks in the
1132 /etc/termcap, /usr/share/misc/termcap and $HOME/.termcap,
1136 The library may be configured to disregard the following variables when
1137 the current user is the superuser (root), or if the application uses
1138 setuid or setgid permissions:
1140 $TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as $HOME.
1143 </PRE><H2><a name="h2-ALTERNATE-CONFIGURATIONS">ALTERNATE CONFIGURATIONS</a></H2><PRE>
1144 Several different configurations are possible, depending on the config-
1145 ure script options used when building <STRONG>ncurses</STRONG>. There are a few main
1146 options whose effects are visible to the applications developer using
1147 <STRONG>ncurses</STRONG>:
1150 The standard include for <STRONG>ncurses</STRONG> is as noted in <STRONG>SYNOPSIS</STRONG>:
1152 <STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
1154 This option is used to avoid filename conflicts when <STRONG>ncurses</STRONG> is
1155 not the main implementation of curses of the computer. If <STRONG>ncurses</STRONG>
1156 is installed disabling overwrite, it puts its headers in a subdi-
1159 <STRONG>#include</STRONG> <STRONG><ncurses/curses.h></STRONG>
1161 It also omits a symbolic link which would allow you to use
1162 <STRONG>-lcurses</STRONG> to build executables.
1165 The configure script renames the library and (if the <STRONG>--dis-</STRONG>
1166 <STRONG>able-overwrite</STRONG> option is used) puts the header files in a differ-
1167 ent subdirectory. All of the library names have a "w" appended to
1168 them, i.e., instead of
1170 <STRONG>-lncurses</STRONG>
1174 <STRONG>-lncursesw</STRONG>
1176 You must also enable the wide-character features in the header
1177 file when compiling for the wide-character library to use the
1178 extended (wide-character) functions. The symbol which enables
1179 these features has changed since XSI Curses, Issue 4:
1181 <STRONG>o</STRONG> Originally, the wide-character feature required the symbol
1182 <STRONG>_XOPEN_SOURCE_EXTENDED</STRONG> but that was only valid for XPG4
1185 <STRONG>o</STRONG> Later, that was deemed conflicting with <STRONG>_XOPEN_SOURCE</STRONG> defined
1188 <STRONG>o</STRONG> As of mid-2018, none of the features in this implementation
1189 require a <STRONG>_XOPEN_SOURCE</STRONG> feature greater than 600. However,
1190 X/Open Curses, Issue 7 (2009) recommends defining it to 700.
1192 <STRONG>o</STRONG> Alternatively, you can enable the feature by defining
1193 <STRONG>NCURSES_WIDECHAR</STRONG> with the caveat that some other header file
1194 than <STRONG>curses.h</STRONG> may require a specific value for <STRONG>_XOPEN_SOURCE</STRONG>
1195 (or a system-specific symbol).
1197 The <STRONG>curses.h</STRONG> file which is installed for the wide-character
1198 library is designed to be compatible with the normal library's
1199 header. Only the size of the <STRONG>WINDOW</STRONG> structure differs, and very
1200 few applications require more than a pointer to <STRONG>WINDOW</STRONG>s.
1202 If the headers are installed allowing overwrite, the wide-charac-
1203 ter library's headers should be installed last, to allow applica-
1204 tions to be built using either library from the same set of head-
1208 The configure script renames the library. All of the library
1209 names have a "t" appended to them (before any "w" added by
1210 <STRONG>--enable-widec</STRONG>).
1212 The global variables such as <STRONG>LINES</STRONG> are replaced by macros to allow
1213 read-only access. At the same time, setter-functions are provided
1214 to set these values. Some applications (very few) may require
1215 changes to work with this convention.
1224 The shared and normal (static) library names differ by their suf-
1225 fixes, e.g., <STRONG>libncurses.so</STRONG> and <STRONG>libncurses.a</STRONG>. The debug and pro-
1226 filing libraries add a "_g" and a "_p" to the root names respec-
1227 tively, e.g., <STRONG>libncurses_g.a</STRONG> and <STRONG>libncurses_p.a</STRONG>.
1230 The <STRONG>trace</STRONG> function normally resides in the debug library, but it
1231 is sometimes useful to configure this in the shared library. Con-
1232 figure scripts should check for the function's existence rather
1233 than assuming it is always in the debug library.
1236 </PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
1238 directory containing initialization files for the terminal capa-
1239 bility database /usr/share/terminfo terminal capability database
1242 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
1243 <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> and related pages whose names begin "curs_" for detailed
1244 routine descriptions.
1245 <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
1246 <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG> for user-defined capabilities
1249 </PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
1250 The <STRONG>ncurses</STRONG> library can be compiled with an option (<STRONG>-DUSE_GETCAP</STRONG>) that
1251 falls back to the old-style /etc/termcap file if the terminal setup
1252 code cannot find a terminfo entry corresponding to <STRONG>TERM</STRONG>. Use of this
1253 feature is not recommended, as it essentially includes an entire term-
1254 cap compiler in the <STRONG>ncurses</STRONG> startup code, at significant cost in core
1257 The <STRONG>ncurses</STRONG> library includes facilities for capturing mouse events on
1258 certain terminals (including xterm). See the <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> manual
1261 The <STRONG>ncurses</STRONG> library includes facilities for responding to window resiz-
1262 ing events, e.g., when running in an xterm. See the <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> and
1263 <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG> manual pages for details. In addition, the library may be
1264 configured with a <STRONG>SIGWINCH</STRONG> handler.
1266 The <STRONG>ncurses</STRONG> library extends the fixed set of function key capabilities
1267 of terminals by allowing the application designer to define additional
1268 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
1269 <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG> manual pages for details.
1271 The <STRONG>ncurses</STRONG> library can exploit the capabilities of terminals which
1272 implement the ISO-6429 SGR 39 and SGR 49 controls, which allow an
1273 application to reset the terminal to its original foreground and back-
1274 ground colors. From the users' perspective, the application is able to
1275 draw colored text on a background whose color is set independently,
1276 providing better control over color contrasts. See the <STRONG>default_col-</STRONG>
1277 <STRONG><A HREF="default_colors.3x.html">ors(3x)</A></STRONG> manual page for details.
1279 The <STRONG>ncurses</STRONG> library includes a function for directing application out-
1280 put to a printer attached to the terminal device. See the
1281 <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG> manual page for details.
1284 </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
1285 The <STRONG>ncurses</STRONG> library is intended to be BASE-level conformant with XSI
1286 Curses. The EXTENDED XSI Curses functionality (including color sup-
1289 A small number of local differences (that is, individual differences
1290 between the XSI Curses and <STRONG>ncurses</STRONG> calls) are described in <STRONG>PORTABILITY</STRONG>
1291 sections of the library man pages.
1294 </PRE><H3><a name="h3-Error-checking">Error checking</a></H3><PRE>
1295 In many cases, X/Open Curses is vague about error conditions, omitting
1296 some of the SVr4 documentation.
1298 Unlike other implementations, this one checks parameters such as point-
1299 ers to WINDOW structures to ensure they are not null. The main reason
1300 for providing this behavior is to guard against programmer error. The
1301 standard interface does not provide a way for the library to tell an
1302 application which of several possible errors were detected. Relying on
1303 this (or some other) extension will adversely affect the portability of
1304 curses applications.
1307 </PRE><H3><a name="h3-Extensions-versus-portability">Extensions versus portability</a></H3><PRE>
1308 Most of the extensions provided by ncurses have not been standardized.
1309 Some have been incorporated into other implementations, such as
1310 PDCurses or NetBSD curses. Here are a few to consider:
1312 <STRONG>o</STRONG> The routine <STRONG>has_key</STRONG> is not part of XPG4, nor is it present in SVr4.
1313 See the <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> manual page for details.
1315 <STRONG>o</STRONG> The routine <STRONG>slk_attr</STRONG> is not part of XPG4, nor is it present in
1316 SVr4. See the <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> manual page for details.
1318 <STRONG>o</STRONG> The routines <STRONG>getmouse</STRONG>, <STRONG>mousemask</STRONG>, <STRONG>ungetmouse</STRONG>, <STRONG>mouseinterval</STRONG>, and
1319 <STRONG>wenclose</STRONG> relating to mouse interfacing are not part of XPG4, nor
1320 are they present in SVr4. See the <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> manual page for
1323 <STRONG>o</STRONG> The routine <STRONG>mcprint</STRONG> was not present in any previous curses imple-
1324 mentation. See the <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG> manual page for details.
1326 <STRONG>o</STRONG> The routine <STRONG>wresize</STRONG> is not part of XPG4, nor is it present in SVr4.
1327 See the <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG> manual page for details.
1329 <STRONG>o</STRONG> The WINDOW structure's internal details can be hidden from applica-
1330 tion programs. See <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG> for the discussion of <STRONG>is_scrol-</STRONG>
1331 <STRONG>lok</STRONG>, etc.
1333 <STRONG>o</STRONG> This implementation can be configured to provide rudimentary sup-
1334 port for multi-threaded applications. See <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG> for
1337 <STRONG>o</STRONG> This implementation can also be configured to provide a set of
1338 functions which improve the ability to manage multiple screens.
1339 See <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG> for details.
1342 </PRE><H3><a name="h3-Padding-differences">Padding differences</a></H3><PRE>
1343 In historic curses versions, delays embedded in the capabilities <STRONG>cr</STRONG>,
1344 <STRONG>ind</STRONG>, <STRONG>cub1</STRONG>, <STRONG>ff</STRONG> and <STRONG>tab</STRONG> activated corresponding delay bits in the UNIX
1345 tty driver. In this implementation, all padding is done by sending NUL
1346 bytes. This method is slightly more expensive, but narrows the inter-
1347 face to the UNIX kernel significantly and increases the package's
1348 portability correspondingly.
1351 </PRE><H3><a name="h3-Header-files">Header files</a></H3><PRE>
1352 The header file <STRONG><curses.h></STRONG> automatically includes the header files
1353 <STRONG><stdio.h></STRONG> and <STRONG><unctrl.h></STRONG>.
1355 X/Open Curses has more to say, but does not finish the story:
1357 The inclusion of <curses.h> may make visible all symbols from the
1358 headers <stdio.h>, <term.h>, <termios.h>, and <wchar.h>.
1360 Here is a more complete story:
1362 <STRONG>o</STRONG> Starting with BSD curses, all implementations have included
1365 BSD curses included <curses.h> and <unctrl.h> from an internal
1366 header "curses.ext" ("ext" was a short name for <EM>externs</EM>).
1368 BSD curses used <stdio.h> internally (for <STRONG>printw</STRONG> and <STRONG>scanw</STRONG>), but
1369 nothing in <curses.h> itself relied upon <stdio.h>.
1371 <STRONG>o</STRONG> SVr2 curses added <STRONG><A HREF="curs_initscr.3x.html">newterm(3x)</A></STRONG>, which relies upon <stdio.h>. That
1372 is, the function prototype uses <STRONG>FILE</STRONG>.
1374 SVr4 curses added <STRONG>putwin</STRONG> and <STRONG>getwin</STRONG>, which also use <stdio.h>.
1376 X/Open Curses documents all three of these functions.
1378 SVr4 curses and X/Open Curses do not require the developer to
1379 include <stdio.h> before including <curses.h>. Both document
1380 curses showing <curses.h> as the only required header.
1382 As a result, standard <curses.h> will always include <stdio.h>.
1384 <STRONG>o</STRONG> X/Open Curses is inconsistent with respect to SVr4 regarding <unc-
1387 As noted in <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, ncurses includes <unctrl.h> from
1388 <curses.h> (like SVr4).
1390 <STRONG>o</STRONG> X/Open's comments about <term.h> and <termios.h> may refer to HP-UX
1393 HP-UX curses includes <term.h> from <curses.h> to declare <STRONG>setupterm</STRONG>
1394 in curses.h, but ncurses (and Solaris curses) do not.
1396 AIX curses includes <term.h> and <termios.h>. Again, ncurses (and
1397 Solaris curses) do not.
1399 <STRONG>o</STRONG> X/Open says that <curses.h> <EM>may</EM> include <term.h>, but there is no
1400 requirement that it do that.
1402 Some programs use functions declared in both <curses.h> and
1403 <term.h>, and must include both headers in the same module. Very
1404 old versions of AIX curses required including <curses.h> before
1405 including <term.h>.
1407 Because ncurses header files include the headers needed to define
1408 datatypes used in the headers, ncurses header files can be included
1409 in any order. But for portability, you should include <curses.h>
1410 before <term.h>.
1412 <STRONG>o</STRONG> X/Open Curses says <EM>"may</EM> <EM>make</EM> <EM>visible"</EM> because including a header
1413 file does not necessarily make all symbols in it visible (there are
1414 ifdef's to consider).
1416 For instance, in ncurses <wchar.h> <EM>may</EM> be included if the proper
1417 symbol is defined, and if ncurses is configured for wide-character
1418 support. If the header is included, its symbols may be made visi-
1419 ble. That depends on the value used for <STRONG>_XOPEN_SOURCE</STRONG> feature test
1422 <STRONG>o</STRONG> X/Open Curses documents one required header, in a special case:
1423 <stdarg.h> before <curses.h> to prototype the <STRONG>vw_printw</STRONG> and
1424 <STRONG>vw_scanw</STRONG> functions (as well as the obsolete the <STRONG>vwprintw</STRONG> and <STRONG>vws-</STRONG>
1425 <STRONG>canw</STRONG> functions). Each of those uses a <STRONG>va_list</STRONG> parameter.
1427 The two obsolete functions were introduced in SVr3. The other
1428 functions were introduced in X/Open Curses. In between, SVr4
1429 curses provided for the possibility that an application might
1430 include either <varargs.h> or <stdarg.h>. Initially, that was done
1431 by using <STRONG>void*</STRONG> for the <STRONG>va_list</STRONG> parameter. Later, a special type
1432 (defined in <stdio.h>) was introduced, to allow for compiler type-
1433 checking. That special type is always available, because <stdio.h>
1434 is always included by <curses.h>.
1436 None of the X/Open Curses implementations require an application to
1437 include <stdarg.h> before <curses.h> because they either have
1438 allowed for a special type, or (like ncurses) include <stdarg.h>
1439 directly to provide a portable interface.
1442 </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
1443 If standard output from a <STRONG>ncurses</STRONG> program is re-directed to something
1444 which is not a tty, screen updates will be directed to standard error.
1445 This was an undocumented feature of AT&T System V Release 3 curses.
1448 </PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
1449 Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey. Based on pcurses
1454 <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
1458 <li><a href="#h2-NAME">NAME</a></li>
1459 <li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
1460 <li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
1462 <li><a href="#h3-Initialization">Initialization</a></li>
1463 <li><a href="#h3-Datatypes">Datatypes</a></li>
1464 <li><a href="#h3-Environment-variables">Environment variables</a></li>
1465 <li><a href="#h3-Routine-and-Argument-Names">Routine and Argument Names</a></li>
1466 <li><a href="#h3-Routine-Name-Index">Routine Name Index</a></li>
1469 <li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
1470 <li><a href="#h2-ENVIRONMENT">ENVIRONMENT</a>
1472 <li><a href="#h3-CC-command-character">CC command-character</a></li>
1473 <li><a href="#h3-BAUDRATE">BAUDRATE</a></li>
1474 <li><a href="#h3-COLUMNS">COLUMNS</a></li>
1475 <li><a href="#h3-ESCDELAY">ESCDELAY</a></li>
1476 <li><a href="#h3-HOME">HOME</a></li>
1477 <li><a href="#h3-LINES">LINES</a></li>
1478 <li><a href="#h3-MOUSE_BUTTONS_123">MOUSE_BUTTONS_123</a></li>
1479 <li><a href="#h3-NCURSES_ASSUMED_COLORS">NCURSES_ASSUMED_COLORS</a></li>
1480 <li><a href="#h3-NCURSES_CONSOLE2">NCURSES_CONSOLE2</a></li>
1481 <li><a href="#h3-NCURSES_GPM_TERMS">NCURSES_GPM_TERMS</a></li>
1482 <li><a href="#h3-NCURSES_NO_HARD_TABS">NCURSES_NO_HARD_TABS</a></li>
1483 <li><a href="#h3-NCURSES_NO_MAGIC_COOKIE">NCURSES_NO_MAGIC_COOKIE</a></li>
1484 <li><a href="#h3-NCURSES_NO_PADDING">NCURSES_NO_PADDING</a></li>
1485 <li><a href="#h3-NCURSES_NO_SETBUF">NCURSES_NO_SETBUF</a></li>
1486 <li><a href="#h3-NCURSES_NO_UTF8_ACS">NCURSES_NO_UTF8_ACS</a></li>
1487 <li><a href="#h3-NCURSES_TRACE">NCURSES_TRACE</a></li>
1488 <li><a href="#h3-TERM">TERM</a></li>
1489 <li><a href="#h3-TERMCAP">TERMCAP</a></li>
1490 <li><a href="#h3-TERMINFO">TERMINFO</a></li>
1491 <li><a href="#h3-TERMINFO_DIRS">TERMINFO_DIRS</a></li>
1492 <li><a href="#h3-TERMPATH">TERMPATH</a></li>
1495 <li><a href="#h2-ALTERNATE-CONFIGURATIONS">ALTERNATE CONFIGURATIONS</a></li>
1496 <li><a href="#h2-FILES">FILES</a></li>
1497 <li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
1498 <li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
1499 <li><a href="#h2-PORTABILITY">PORTABILITY</a>
1501 <li><a href="#h3-Error-checking">Error checking</a></li>
1502 <li><a href="#h3-Extensions-versus-portability">Extensions versus portability</a></li>
1503 <li><a href="#h3-Padding-differences">Padding differences</a></li>
1504 <li><a href="#h3-Header-files">Header files</a></li>
1507 <li><a href="#h2-NOTES">NOTES</a></li>
1508 <li><a href="#h2-AUTHORS">AUTHORS</a></li>