3 ****************************************************************************
4 * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
6 * Permission is hereby granted, free of charge, to any person obtaining a *
7 * copy of this software and associated documentation files (the *
8 * "Software"), to deal in the Software without restriction, including *
9 * without limitation the rights to use, copy, modify, merge, publish, *
10 * distribute, distribute with modifications, sublicense, and/or sell *
11 * copies of the Software, and to permit persons to whom the Software is *
12 * furnished to do so, subject to the following conditions: *
14 * The above copyright notice and this permission notice shall be included *
15 * in all copies or substantial portions of the Software. *
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
18 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
19 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
20 * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
21 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
22 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
23 * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
25 * Except as contained in this notice, the name(s) of the above copyright *
26 * holders shall not be used in advertising or otherwise to promote the *
27 * sale, use or other dealings in this Software without prior written *
29 ****************************************************************************
30 * @Id: ncurses.3x,v 1.119 2014/08/09 20:54:30 tom Exp @
32 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
35 <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
36 <meta name="generator" content="Manpage converted by man2html - see http://invisible-island.net/scripts/readme.html#others_scripts">
37 <TITLE>ncurses 3x</TITLE>
38 <link rev=made href="mailto:bug-ncurses@gnu.org">
39 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
42 <H1 class="no-header">ncurses 3x</H1>
44 <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
50 <H2><a name="h2-NAME">NAME</a></H2><PRE>
51 <STRONG>ncurses</STRONG> - CRT screen handling and optimization package
55 <H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
56 <STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
60 <H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
61 The <STRONG>ncurses</STRONG> library routines give the user a terminal-
62 independent method of updating character screens with rea-
63 sonable optimization. This implementation is "new curses"
64 (ncurses) and is the approved replacement for 4.4BSD clas-
65 sic curses, which has been discontinued. This describes
66 <STRONG>ncurses</STRONG> version 5.9 (patch 20150523).
68 The <STRONG>ncurses</STRONG> library emulates the curses library of System
69 V Release 4 UNIX, and XPG4 (X/Open Portability Guide)
70 curses (also known as XSI curses). XSI stands for X/Open
71 System Interfaces Extension. The <STRONG>ncurses</STRONG> library is
72 freely redistributable in source form. Differences from
73 the SVr4 curses are summarized under the <STRONG>EXTENSIONS</STRONG> and
74 <STRONG>PORTABILITY</STRONG> sections below and described in detail in the
75 respective <STRONG>EXTENSIONS</STRONG>, <STRONG>PORTABILITY</STRONG> and <STRONG>BUGS</STRONG> sections of
78 The <STRONG>ncurses</STRONG> library also provides many useful extensions,
79 i.e., features which cannot be implemented by a simple
80 add-on library but which require access to the internals
83 A program using these routines must be linked with the
84 <STRONG>-lncurses</STRONG> option, or (if it has been generated) with the
85 debugging library <STRONG>-lncurses_g</STRONG>. (Your system integrator
86 may also have installed these libraries under the names
87 <STRONG>-lcurses</STRONG> and <STRONG>-lcurses_g</STRONG>.) The ncurses_g library generates
88 trace logs (in a file called 'trace' in the current direc-
89 tory) that describe curses actions. See also the section
90 on <STRONG>ALTERNATE</STRONG> <STRONG>CONFIGURATIONS</STRONG>.
92 The <STRONG>ncurses</STRONG> package supports: overall screen, window and
93 pad manipulation; output to windows and pads; reading ter-
94 minal input; control over terminal and <STRONG>curses</STRONG> input and
95 output options; environment query routines; color manipu-
96 lation; use of soft label keys; terminfo capabilities; and
97 access to low-level terminal-manipulation routines.
99 The library uses the locale which the calling program has
100 initialized. That is normally done with <STRONG>setlocale</STRONG>:
102 <STRONG>setlocale(LC_ALL,</STRONG> <STRONG>"");</STRONG>
104 If the locale is not initialized, the library assumes that
105 characters are printable as in ISO-8859-1, to work with
106 certain legacy programs. You should initialize the locale
107 and not rely on specific details of the library when the
108 locale has not been setup.
110 The function <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG> must be called to initial-
111 ize the library before any of the other routines that deal
112 with windows and screens are used. The routine <STRONG>endwin</STRONG>
113 must be called before exiting.
115 To get character-at-a-time input without echoing (most
116 interactive, screen oriented programs want this), the fol-
117 lowing sequence should be used:
119 <STRONG>initscr();</STRONG> <STRONG>cbreak();</STRONG> <STRONG>noecho();</STRONG>
121 Most programs would additionally use the sequence:
123 <STRONG>nonl();</STRONG>
124 <STRONG>intrflush(stdscr,</STRONG> <STRONG>FALSE);</STRONG>
125 <STRONG>keypad(stdscr,</STRONG> <STRONG>TRUE);</STRONG>
127 Before a <STRONG>curses</STRONG> program is run, the tab stops of the ter-
128 minal should be set and its initialization strings, if
129 defined, must be output. This can be done by executing
130 the <STRONG>tput</STRONG> <STRONG>init</STRONG> command after the shell environment variable
131 <STRONG>TERM</STRONG> has been exported. <STRONG>tset(1)</STRONG> is usually responsible
132 for doing this. [See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for further details.]
134 The <STRONG>ncurses</STRONG> library permits manipulation of data struc-
135 tures, called <EM>windows</EM>, which can be thought of as two-
136 dimensional arrays of characters representing all or part
137 of a CRT screen. A default window called <STRONG>stdscr</STRONG>, which is
138 the size of the terminal screen, is supplied. Others may
139 be created with <STRONG>newwin</STRONG>.
141 Note that <STRONG>curses</STRONG> does not handle overlapping windows,
142 that's done by the <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG> library. This means that you
143 can either use <STRONG>stdscr</STRONG> or divide the screen into tiled win-
144 dows and not using <STRONG>stdscr</STRONG> at all. Mixing the two will
145 result in unpredictable, and undesired, effects.
147 Windows are referred to by variables declared as <STRONG>WINDOW</STRONG> <STRONG>*</STRONG>.
148 These data structures are manipulated with routines
149 described here and elsewhere in the <STRONG>ncurses</STRONG> manual pages.
150 Among those, the most basic routines are <STRONG>move</STRONG> and <STRONG>addch</STRONG>.
151 More general versions of these routines are included with
152 names beginning with <STRONG>w</STRONG>, allowing the user to specify a
153 window. The routines not beginning with <STRONG>w</STRONG> affect <STRONG>stdscr</STRONG>.
155 After using routines to manipulate a window, <STRONG>refresh</STRONG> is
156 called, telling <STRONG>curses</STRONG> to make the user's CRT screen look
157 like <STRONG>stdscr</STRONG>. The characters in a window are actually of
158 type <STRONG>chtype</STRONG>, (character and attribute data) so that other
159 information about the character may also be stored with
162 Special windows called <EM>pads</EM> may also be manipulated.
163 These are windows which are not constrained to the size of
164 the screen and whose contents need not be completely dis-
165 played. See <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG> for more information.
167 In addition to drawing characters on the screen, video
168 attributes and colors may be supported, causing the char-
169 acters to show up in such modes as underlined, in reverse
170 video, or in color on terminals that support such display
171 enhancements. Line drawing characters may be specified to
172 be output. On input, <STRONG>curses</STRONG> is also able to translate
173 arrow and function keys that transmit escape sequences
174 into single values. The video attributes, line drawing
175 characters, and input values use names, defined in
176 <STRONG><curses.h></STRONG>, such as <STRONG>A_REVERSE</STRONG>, <STRONG>ACS_HLINE</STRONG>, and <STRONG>KEY_LEFT</STRONG>.
178 If the environment variables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> are set, or
179 if the program is executing in a window environment, line
180 and column information in the environment will override
181 information read by <EM>terminfo</EM>. This would affect a program
182 running in an AT&T 630 layer, for example, where the size
183 of a screen is changeable (see <STRONG>ENVIRONMENT</STRONG>).
185 If the environment variable <STRONG>TERMINFO</STRONG> is defined, any pro-
186 gram using <STRONG>curses</STRONG> checks for a local terminal definition
187 before checking in the standard place. For example, if
188 <STRONG>TERM</STRONG> is set to <STRONG>att4424</STRONG>, then the compiled terminal defini-
191 <STRONG>/usr/share/terminfo/a/att4424</STRONG>.
193 (The <STRONG>a</STRONG> is copied from the first letter of <STRONG>att4424</STRONG> to avoid
194 creation of huge directories.) However, if <STRONG>TERMINFO</STRONG> is
195 set to <STRONG>$HOME/myterms</STRONG>, <STRONG>curses</STRONG> first checks
197 <STRONG>$HOME/myterms/a/att4424</STRONG>,
199 and if that fails, it then checks
201 <STRONG>/usr/share/terminfo/a/att4424</STRONG>.
203 This is useful for developing experimental definitions or
204 when write permission in <STRONG>/usr/share/terminfo</STRONG> is not avail-
207 The integer variables <STRONG>LINES</STRONG> and <STRONG>COLS</STRONG> are defined in
208 <STRONG><curses.h></STRONG> and will be filled in by <STRONG>initscr</STRONG> with the size
209 of the screen. The constants <STRONG>TRUE</STRONG> and <STRONG>FALSE</STRONG> have the val-
210 ues <STRONG>1</STRONG> and <STRONG>0</STRONG>, respectively.
212 The <STRONG>curses</STRONG> routines also define the <STRONG>WINDOW</STRONG> <STRONG>*</STRONG> variable
213 <STRONG>curscr</STRONG> which is used for certain low-level operations like
214 clearing and redrawing a screen containing garbage. The
215 <STRONG>curscr</STRONG> can be used in only a few routines.
219 <H3><a name="h3-Routine-and-Argument-Names">Routine and Argument Names</a></H3><PRE>
220 Many <STRONG>curses</STRONG> routines have two or more versions. The rou-
221 tines prefixed with <STRONG>w</STRONG> require a window argument. The rou-
222 tines prefixed with <STRONG>p</STRONG> require a pad argument. Those with-
223 out a prefix generally use <STRONG>stdscr</STRONG>.
225 The routines prefixed with <STRONG>mv</STRONG> require a <EM>y</EM> and <EM>x</EM> coordinate
226 to move to before performing the appropriate action. The
227 <STRONG>mv</STRONG> routines imply a call to <STRONG>move</STRONG> before the call to the
228 other routine. The coordinate <EM>y</EM> always refers to the row
229 (of the window), and <EM>x</EM> always refers to the column. The
230 upper left-hand corner is always (0,0), not (1,1).
232 The routines prefixed with <STRONG>mvw</STRONG> take both a window argument
233 and <EM>x</EM> and <EM>y</EM> coordinates. The window argument is always
234 specified before the coordinates.
236 In each case, <EM>win</EM> is the window affected, and <EM>pad</EM> is the
237 pad affected; <EM>win</EM> and <EM>pad</EM> are always pointers to type <STRONG>WIN-</STRONG>
238 <STRONG>DOW</STRONG>.
240 Option setting routines require a Boolean flag <EM>bf</EM> with the
241 value <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>; <EM>bf</EM> is always of type <STRONG>bool</STRONG>. Most of
242 the data types used in the library routines, such as <STRONG>WIN-</STRONG>
243 <STRONG>DOW</STRONG>, <STRONG>SCREEN</STRONG>, <STRONG>bool</STRONG>, and <STRONG>chtype</STRONG> are defined in <STRONG><curses.h></STRONG>.
244 Types used for the terminfo routines such as <STRONG>TERMINAL</STRONG> are
245 defined in <STRONG><term.h></STRONG>.
247 This manual page describes functions which may appear in
248 any configuration of the library. There are two common
249 configurations of the library:
252 the "normal" library, which handles 8-bit
253 characters. The normal (8-bit) library stores
254 characters combined with attributes in <STRONG>chtype</STRONG>
257 Attributes alone (no corresponding character)
258 may be stored in <STRONG>chtype</STRONG> or the equivalent
259 <STRONG>attr_t</STRONG> data. In either case, the data is
260 stored in something like an integer.
262 Each cell (row and column) in a <STRONG>WINDOW</STRONG> is
263 stored as a <STRONG>chtype</STRONG>.
266 the so-called "wide" library, which handles
267 multibyte characters (see the section on
268 <STRONG>ALTERNATE</STRONG> <STRONG>CONFIGURATIONS</STRONG>). The "wide" library
269 includes all of the calls from the "normal"
270 library. It adds about one third more calls
271 using data types which store multibyte charac-
274 <STRONG>cchar_t</STRONG>
275 corresponds to <STRONG>chtype</STRONG>. However it is a
276 structure, because more data is stored
277 than can fit into an integer. The char-
278 acters are large enough to require a full
279 integer value - and there may be more
280 than one character per cell. The video
281 attributes and color are stored in sepa-
282 rate fields of the structure.
284 Each cell (row and column) in a <STRONG>WINDOW</STRONG> is
285 stored as a <STRONG>cchar_t</STRONG>.
287 <STRONG>wchar_t</STRONG>
288 stores a "wide" character. Like <STRONG>chtype</STRONG>,
289 this may be an integer.
291 <STRONG>wint_t</STRONG>
292 stores a <STRONG>wchar_t</STRONG> or <STRONG>WEOF</STRONG> - not the same,
293 though both may have the same size.
295 The "wide" library provides new functions
296 which are analogous to functions in the "nor-
297 mal" library. There is a naming convention
298 which relates many of the normal/wide vari-
299 ants: a "_w" is inserted into the name. For
300 example, <STRONG>waddch</STRONG> becomes <STRONG>wadd_wch</STRONG>.
304 <H3><a name="h3-Routine-Name-Index">Routine Name Index</a></H3><PRE>
305 The following table lists each <STRONG>curses</STRONG> routine and the name
306 of the manual page on which it is described. Routines
307 flagged with `*' are ncurses-specific, not described by
308 XPG4 or present in SVr4.
310 <STRONG>curses</STRONG> Routine Name Manual Page Name
311 --------------------------------------------
312 COLOR_PAIR <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
313 PAIR_NUMBER <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
314 _nc_free_and_exit <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>*
315 _nc_freeall <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>*
316 _nc_tracebits <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
318 _traceattr <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
319 _traceattr2 <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
320 _tracechar <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
321 _tracechtype <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
322 _tracechtype2 <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
323 _tracedump <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
324 _tracef <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
325 _tracemouse <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
326 add_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
327 add_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
328 add_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
329 addch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
330 addchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
331 addchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
332 addnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
333 addnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
334 addstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
335 addwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
336 assume_default_colors <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>*
337 attr_get <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
338 attr_off <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
339 attr_on <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
340 attr_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
341 attroff <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
342 attron <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
343 attrset <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
344 baudrate <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
345 beep <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
346 bkgd <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
347 bkgdset <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
348 bkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
349 bkgrndset <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
350 border <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
351 border_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
352 box <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
353 box_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
354 can_change_color <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
355 cbreak <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
356 chgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
357 clear <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
358 clearok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
359 clrtobot <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
360 clrtoeol <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
361 color_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
362 color_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
363 copywin <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
364 curs_set <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
365 curses_version <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>*
366 def_prog_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
367 def_shell_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
368 define_key <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>*
369 del_curterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
370 delay_output <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
371 delch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
372 deleteln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
373 delscreen <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
374 delwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
375 derwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
376 doupdate <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
377 dupwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
378 echo <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
379 echo_wchar <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
380 echochar <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
381 endwin <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
382 erase <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
384 erasechar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
385 erasewchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
386 filter <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
387 flash <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
388 flushinp <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
389 get_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
390 get_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
391 getattrs <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
392 getbegx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
393 getbegy <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
394 getbegyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
395 getbkgd <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
396 getbkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
397 getcchar <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
398 getch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
399 getcurx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
400 getcury <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
401 getmaxx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
402 getmaxy <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
403 getmaxyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
404 getmouse <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
405 getn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
406 getnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
407 getparx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
408 getpary <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
409 getparyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
410 getstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
411 getsyx <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
412 getwin <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
413 getyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
414 halfdelay <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
415 has_colors <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
416 has_ic <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
417 has_il <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
418 has_key <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>*
419 hline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
420 hline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
421 idcok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
422 idlok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
423 immedok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
424 in_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
425 in_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
426 in_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
427 inch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
428 inchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
429 inchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
430 init_color <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
431 init_pair <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
432 initscr <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
433 innstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
434 innwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
435 ins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
436 ins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
437 ins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
438 insch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
439 insdelln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
440 insertln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
441 insnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
442 insstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
443 instr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
444 intrflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
445 inwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
446 is_cleared <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
447 is_idcok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
448 is_idlok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
450 is_immedok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
451 is_keypad <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
452 is_leaveok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
453 is_linetouched <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
454 is_nodelay <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
455 is_notimeout <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
456 is_scrollok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
457 is_syncok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
458 is_term_resized <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>*
459 is_wintouched <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
460 isendwin <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
461 key_defined <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>*
462 key_name <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
463 keybound <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>*
464 keyname <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
465 keyok <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>*
466 keypad <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
467 killchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
468 killwchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
469 leaveok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
470 longname <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
471 mcprint <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>*
472 meta <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
473 mouse_trafo <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
474 mouseinterval <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
475 mousemask <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
476 move <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
477 mvadd_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
478 mvadd_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
479 mvadd_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
480 mvaddch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
481 mvaddchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
482 mvaddchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
483 mvaddnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
484 mvaddnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
485 mvaddstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
486 mvaddwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
487 mvchgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
488 mvcur <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
489 mvdelch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
490 mvderwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
491 mvget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
492 mvget_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
493 mvgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
494 mvgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
495 mvgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
496 mvgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
497 mvhline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
498 mvhline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
499 mvin_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
500 mvin_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
501 mvin_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
502 mvinch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
503 mvinchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
504 mvinchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
505 mvinnstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
506 mvinnwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
507 mvins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
508 mvins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
509 mvins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
510 mvinsch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
511 mvinsnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
512 mvinsstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
513 mvinstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
514 mvinwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
516 mvprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
517 mvscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
518 mvvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
519 mvvline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
520 mvwadd_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
521 mvwadd_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
522 mvwadd_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
523 mvwaddch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
524 mvwaddchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
525 mvwaddchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
526 mvwaddnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
527 mvwaddnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
528 mvwaddstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
529 mvwaddwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
530 mvwchgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
531 mvwdelch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
532 mvwget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
533 mvwget_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
534 mvwgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
535 mvwgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
536 mvwgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
537 mvwgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
538 mvwhline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
539 mvwhline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
540 mvwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
541 mvwin_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
542 mvwin_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
543 mvwin_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
544 mvwinch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
545 mvwinchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
546 mvwinchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
547 mvwinnstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
548 mvwinnwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
549 mvwins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
550 mvwins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
551 mvwins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
552 mvwinsch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
553 mvwinsnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
554 mvwinsstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
555 mvwinstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
556 mvwinwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
557 mvwprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
558 mvwscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
559 mvwvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
560 mvwvline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
561 napms <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
562 newpad <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
563 newterm <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
564 newwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
565 nl <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
566 nocbreak <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
567 nodelay <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
568 noecho <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
569 nofilter <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>*
570 nonl <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
571 noqiflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
572 noraw <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
573 notimeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
574 overlay <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
575 overwrite <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
576 pair_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
577 pechochar <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
578 pnoutrefresh <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
579 prefresh <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
580 printw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
582 putp <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
583 putwin <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
584 qiflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
585 raw <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
586 redrawwin <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
587 refresh <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
588 reset_prog_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
589 reset_shell_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
590 resetty <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
591 resizeterm <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>*
592 restartterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
593 ripoffline <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
594 savetty <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
595 scanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
596 scr_dump <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
597 scr_init <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
598 scr_restore <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
599 scr_set <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
600 scrl <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
601 scroll <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
602 scrollok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
603 set_curterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
604 set_term <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
605 setcchar <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
606 setscrreg <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
607 setsyx <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
608 setterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
609 setupterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
610 slk_attr <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>*
611 slk_attr_off <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
612 slk_attr_on <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
613 slk_attr_set <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
614 slk_attroff <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
615 slk_attron <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
616 slk_attrset <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
617 slk_clear <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
618 slk_color <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
619 slk_init <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
620 slk_label <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
621 slk_noutrefresh <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
622 slk_refresh <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
623 slk_restore <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
624 slk_set <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
625 slk_touch <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
626 standend <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
627 standout <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
628 start_color <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
629 subpad <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
630 subwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
631 syncok <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
632 term_attrs <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
633 termattrs <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
634 termname <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
635 tgetent <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
636 tgetflag <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
637 tgetnum <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
638 tgetstr <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
639 tgoto <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
640 tigetflag <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
641 tigetnum <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
642 tigetstr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
643 timeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
644 touchline <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
645 touchwin <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
646 tparm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
648 tputs <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
649 tputs <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
650 trace <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
651 typeahead <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
652 unctrl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
653 unget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
654 ungetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
655 ungetmouse <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
656 untouchwin <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
657 use_default_colors <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>*
658 use_env <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
659 use_extended_names <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>*
660 use_legacy_coding <STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG>*
661 use_tioctl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
662 vid_attr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
663 vid_puts <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
664 vidattr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
665 vidputs <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
666 vline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
667 vline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
668 vw_printw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
669 vw_scanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
670 vwprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
671 vwscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
672 wadd_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
673 wadd_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
674 wadd_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
675 waddch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
676 waddchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
677 waddchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
678 waddnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
679 waddnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
680 waddstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
681 waddwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
682 wattr_get <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
683 wattr_off <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
684 wattr_on <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
685 wattr_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
686 wattroff <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
687 wattron <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
688 wattrset <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
689 wbkgd <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
690 wbkgdset <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
691 wbkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
692 wbkgrndset <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
693 wborder <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
694 wborder_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
695 wchgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
696 wclear <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
697 wclrtobot <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
698 wclrtoeol <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
699 wcolor_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
700 wcursyncup <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
701 wdelch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
702 wdeleteln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
703 wecho_wchar <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
704 wechochar <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
705 wenclose <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
706 werase <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
707 wget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
708 wget_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
709 wgetbkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
710 wgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
711 wgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
712 wgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
714 wgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
715 whline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
716 whline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
717 win_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
718 win_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
719 win_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
720 winch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
721 winchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
722 winchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
723 winnstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
724 winnwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
725 wins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
726 wins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
727 wins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
728 winsch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
729 winsdelln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
730 winsertln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
731 winsnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
732 winsstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
733 winstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
734 winwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
735 wmouse_trafo <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
736 wmove <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
737 wnoutrefresh <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
738 wprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
739 wredrawln <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
740 wrefresh <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
741 wresize <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>*
742 wscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
743 wscrl <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
744 wsetscrreg <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
745 wstandend <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
746 wstandout <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
747 wsyncdown <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
748 wsyncup <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
749 wtimeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
750 wtouchln <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
751 wunctrl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
752 wvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
753 wvline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
757 <H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
758 Routines that return an integer return <STRONG>ERR</STRONG> upon failure
759 and an integer value other than <STRONG>ERR</STRONG> upon successful com-
760 pletion, unless otherwise noted in the routine descrip-
763 As a general rule, routines check for null pointers passed
764 as parameters, and handle this as an error.
766 All macros return the value of the <STRONG>w</STRONG> version, except
767 <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>, and <STRONG>getmaxyx</STRONG>. The
768 return values of <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>,
769 and <STRONG>getmaxyx</STRONG> are undefined (i.e., these should not be used
770 as the right-hand side of assignment statements).
772 Routines that return pointers return <STRONG>NULL</STRONG> on error.
776 <H2><a name="h2-ENVIRONMENT">ENVIRONMENT</a></H2><PRE>
777 The following environment symbols are useful for customiz-
778 ing the runtime behavior of the <STRONG>ncurses</STRONG> library. The most
779 important ones have been already discussed in detail.
781 CC When set, change occurrences of the command_character
782 (i.e., the <STRONG>cmdch</STRONG> capability) of the loaded terminfo
783 entries to the value of this variable. Very few ter-
784 minfo entries provide this feature.
786 Because this name is also used in development envi-
787 ronments to represent the C compiler's name, <STRONG>ncurses</STRONG>
788 ignores it if it does not happen to be a single char-
792 The debugging library checks this environment vari-
793 able when the application has redirected output to a
794 file. The variable's numeric value is used for the
795 baudrate. If no value is found, <STRONG>ncurses</STRONG> uses 9600.
796 This allows testers to construct repeatable test-
797 cases that take into account costs that depend on
801 Specify the width of the screen in characters.
802 Applications running in a windowing environment usu-
803 ally are able to obtain the width of the window in
804 which they are executing. If neither the <STRONG>COLUMNS</STRONG>
805 value nor the terminal's screen size is available,
806 <STRONG>ncurses</STRONG> uses the size which may be specified in the
807 terminfo database (i.e., the <STRONG>cols</STRONG> capability).
809 It is important that your application use a correct
810 size for the screen. This is not always possible
811 because your application may be running on a host
812 which does not honor NAWS (Negotiations About Window
813 Size), or because you are temporarily running as
814 another user. However, setting <STRONG>COLUMNS</STRONG> and/or <STRONG>LINES</STRONG>
815 overrides the library's use of the screen size
816 obtained from the operating system.
818 Either <STRONG>COLUMNS</STRONG> or <STRONG>LINES</STRONG> symbols may be specified
819 independently. This is mainly useful to circumvent
820 legacy misfeatures of terminal descriptions, e.g.,
821 xterm which commonly specifies a 65 line screen. For
822 best results, <STRONG>lines</STRONG> and <STRONG>cols</STRONG> should not be specified
823 in a terminal description for terminals which are run
826 Use the <STRONG>use_env</STRONG> function to disable all use of exter-
827 nal environment (but not including system calls) to
828 determine the screen size. Use the <STRONG>use_tioctl</STRONG> func-
829 tion to update <STRONG>COLUMNS</STRONG> or <STRONG>LINES</STRONG> to match the screen
830 size obtained from system calls or the terminal data-
834 Specifies the total time, in milliseconds, for which
835 ncurses will await a character sequence, e.g., a
836 function key. The default value, 1000 milliseconds,
837 is enough for most uses. However, it is made a vari-
838 able to accommodate unusual applications.
840 The most common instance where you may wish to change
841 this value is to work with slow hosts, e.g., running
842 on a network. If the host cannot read characters
843 rapidly enough, it will have the same effect as if
844 the terminal did not send characters rapidly enough.
845 The library will still see a timeout.
847 Note that xterm mouse events are built up from char-
848 acter sequences received from the xterm. If your
849 application makes heavy use of multiple-clicking, you
850 may wish to lengthen this default value because the
851 timeout applies to the composed multi-click event as
852 well as the individual clicks.
854 In addition to the environment variable, this imple-
855 mentation provides a global variable with the same
856 name. Portable applications should not rely upon the
857 presence of ESCDELAY in either form, but setting the
858 environment variable rather than the global variable
859 does not create problems when compiling an applica-
862 HOME Tells <STRONG>ncurses</STRONG> where your home directory is. That is
863 where it may read and write auxiliary terminal
870 Like COLUMNS, specify the height of the screen in
871 characters. See COLUMNS for a detailed description.
874 This applies only to the OS/2 EMX port. It specifies
875 the order of buttons on the mouse. OS/2 numbers a
876 3-button mouse inconsistently from other platforms:
882 This variable lets you customize the mouse. The
883 variable must be three numeric digits 1-3 in any
884 order, e.g., 123 or 321. If it is not specified,
885 <STRONG>ncurses</STRONG> uses 132.
887 NCURSES_ASSUMED_COLORS
888 Override the compiled-in assumption that the termi-
889 nal's default colors are white-on-black (see
890 <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>). You may set the foreground and
891 background color values with this environment vari-
892 able by proving a 2-element list: foreground,back-
893 ground. For example, to tell ncurses to not assume
894 anything about the colors, set this to "-1,-1". To
895 make it green-on-black, set it to "2,0". Any posi-
896 tive value from zero to the terminfo <STRONG>max_colors</STRONG> value
900 This applies only to the MinGW port of ncurses.
902 The <STRONG>Console2</STRONG> program's handling of the Microsoft Con-
903 sole API call <STRONG>CreateConsoleScreenBuffer</STRONG> is defective.
904 Applications which use this will hang. However, it
905 is possible to simulate the action of this call by
906 mapping coordinates, explicitly saving and restoring
907 the original screen contents. Setting the environ-
908 ment variable <STRONG>NCGDB</STRONG> has the same effect.
911 This applies only to ncurses configured to use the
914 If present, the environment variable is a list of one
915 or more terminal names against which the TERM envi-
916 ronment variable is matched. Setting it to an empty
917 value disables the GPM interface; using the built-in
918 support for xterm, etc.
920 If the environment variable is absent, ncurses will
921 attempt to open GPM if TERM contains "linux".
924 <STRONG>Ncurses</STRONG> may use tabs as part of the cursor movement
925 optimization. In some cases, your terminal driver
926 may not handle these properly. Set this environment
927 variable to disable the feature. You can also adjust
928 your <STRONG>stty</STRONG> settings to avoid the problem.
930 NCURSES_NO_MAGIC_COOKIE
931 Some terminals use a magic-cookie feature which
932 requires special handling to make highlighting and
933 other video attributes display properly. You can
934 suppress the highlighting entirely for these termi-
935 nals by setting this environment variable.
938 Most of the terminal descriptions in the terminfo
939 database are written for real "hardware" terminals.
940 Many people use terminal emulators which run in a
941 windowing environment and use curses-based applica-
942 tions. Terminal emulators can duplicate all of the
943 important aspects of a hardware terminal, but they do
944 not have the same limitations. The chief limitation
945 of a hardware terminal from the standpoint of your
946 application is the management of dataflow, i.e., tim-
947 ing. Unless a hardware terminal is interfaced into a
948 terminal concentrator (which does flow control), it
949 (or your application) must manage dataflow, prevent-
950 ing overruns. The cheapest solution (no hardware
951 cost) is for your program to do this by pausing after
952 operations that the terminal does slowly, such as
953 clearing the display.
955 As a result, many terminal descriptions (including
956 the vt100) have delay times embedded. You may wish
957 to use these descriptions, but not want to pay the
960 Set the NCURSES_NO_PADDING environment variable to
961 disable all but mandatory padding. Mandatory padding
962 is used as a part of special control sequences such
966 This setting is obsolete. Before changes
968 <STRONG>o</STRONG> started with 5.9 patch 20120825 and
970 <STRONG>o</STRONG> continued though 5.9 patch 20130126
972 <STRONG>ncurses</STRONG> enabled buffered output during terminal ini-
973 tialization. This was done (as in SVr4 curses) for
974 performance reasons. For testing purposes, both of
975 <STRONG>ncurses</STRONG> and certain applications, this feature was
976 made optional. Setting the NCURSES_NO_SETBUF vari-
977 able disabled output buffering, leaving the output in
978 the original (usually line buffered) mode.
980 In the current implementation, ncurses performs its
981 own buffering and does not require this workaround.
982 It does not modify the buffering of the standard out-
985 The reason for the change was to make the behavior
986 for interrupts and other signals more robust. One
987 drawback is that certain nonconventional programs
988 would mix ordinary stdio calls with ncurses calls and
989 (usually) work. This is no longer possible since
990 ncurses is not using the buffered standard output but
991 its own output (to the same file descriptor). As a
992 special case, the low-level calls such as <STRONG>putp</STRONG> still
993 use the standard output. But high-level curses calls
997 During initialization, the <STRONG>ncurses</STRONG> library checks for
998 special cases where VT100 line-drawing (and the cor-
999 responding alternate character set capabilities)
1000 described in the terminfo are known to be missing.
1001 Specifically, when running in a UTF-8 locale, the
1002 Linux console emulator and the GNU screen program
1003 ignore these. Ncurses checks the TERM environment
1004 variable for these. For other special cases, you
1005 should set this environment variable. Doing this
1006 tells ncurses to use Unicode values which correspond
1007 to the VT100 line-drawing glyphs. That works for the
1008 special cases cited, and is likely to work for termi-
1011 When setting this variable, you should set it to a
1012 nonzero value. Setting it to zero (or to a nonnum-
1013 ber) disables the special check for "linux" and
1016 As an alternative to the environment variable,
1017 ncurses checks for an extended terminfo capability
1018 <STRONG>U8</STRONG>. This is a numeric capability which can be com-
1019 piled using <STRONG>tic</STRONG> <STRONG>-x</STRONG>. For example
1021 # linux console, if patched to provide working
1022 # VT100 shift-in/shift-out, with corresponding font.
1023 linux-vt100|linux console with VT100 line-graphics,
1026 # uxterm with vt100Graphics resource set to false
1027 xterm-utf8|xterm relying on UTF-8 line-graphics,
1030 The name "U8" is chosen to be two characters, to per-
1031 mit it to be used by applications that use ncurses'
1035 During initialization, the <STRONG>ncurses</STRONG> debugging library
1036 checks the NCURSES_TRACE environment variable. If it
1037 is defined, to a numeric value, <STRONG>ncurses</STRONG> calls the
1038 <STRONG>trace</STRONG> function, using that value as the argument.
1040 The argument values, which are defined in <STRONG>curses.h</STRONG>,
1041 provide several types of information. When running
1042 with traces enabled, your application will write the
1043 file <STRONG>trace</STRONG> to the current directory.
1045 TERM Denotes your terminal type. Each terminal type is
1046 distinct, though many are similar.
1048 <STRONG>TERM</STRONG> is commonly set by terminal emulators to help
1049 applications find a workable terminal description.
1050 Some of those choose a popular approximation, e.g.,
1051 "ansi", "vt100", "xterm" rather than an exact fit.
1052 Not infrequently, your application will have problems
1053 with that approach, e.g., incorrect function-key def-
1056 If you set <STRONG>TERM</STRONG> in your environment, it has no effect
1057 on the operation of the terminal emulator. It only
1058 affects the way applications work within the termi-
1059 nal. Likewise, as a general rule (<STRONG>xterm</STRONG> being a rare
1060 exception), terminal emulators which allow you to
1061 specify <STRONG>TERM</STRONG> as a parameter or configuration value do
1062 not change their behavior to match that setting.
1065 If the <STRONG>ncurses</STRONG> library has been configured with <EM>term-</EM>
1066 <EM>cap</EM> support, <STRONG>ncurses</STRONG> will check for a terminal's
1067 description in termcap form if it is not available in
1068 the terminfo database.
1070 The TERMCAP environment variable contains either a
1071 terminal description (with newlines stripped out), or
1072 a file name telling where the information denoted by
1073 the TERM environment variable exists. In either
1074 case, setting it directs <STRONG>ncurses</STRONG> to ignore the usual
1075 place for this information, e.g., /etc/termcap.
1078 Overrides the directory in which <STRONG>ncurses</STRONG> searches for
1079 your terminal description. This is the simplest, but
1080 not the only way to change the list of directories.
1081 The complete list of directories in order follows:
1083 <STRONG>o</STRONG> the last directory to which <STRONG>ncurses</STRONG> wrote, if
1084 any, is searched first
1086 <STRONG>o</STRONG> the directory specified by the TERMINFO environ-
1089 <STRONG>o</STRONG> $HOME/.terminfo
1091 <STRONG>o</STRONG> directories listed in the TERMINFO_DIRS environ-
1094 <STRONG>o</STRONG> one or more directories whose names are config-
1095 ured and compiled into the ncurses library, i.e.,
1097 <STRONG>o</STRONG> /usr/local/ncurses/share/ter-
1098 minfo:/usr/share/terminfo (corresponding to
1099 the TERMINFO_DIRS variable)
1101 <STRONG>o</STRONG> /usr/share/terminfo (corresponding to the
1105 Specifies a list of directories to search for termi-
1106 nal descriptions. The list is separated by colons
1107 (i.e., ":") on Unix, semicolons on OS/2 EMX.
1109 All of the terminal descriptions are in terminfo
1110 form. Normally these are stored in a directory tree,
1111 using subdirectories named by the first letter of the
1112 terminal names therein.
1114 If <STRONG>ncurses</STRONG> is built with a hashed database, then each
1115 entry in this list can also be the path of the corre-
1116 sponding database file.
1118 If <STRONG>ncurses</STRONG> is built with a support for reading term-
1119 cap files directly, then an entry in this list may be
1120 the path of a termcap file.
1123 If TERMCAP does not hold a file name then <STRONG>ncurses</STRONG>
1124 checks the TERMPATH environment variable. This is a
1125 list of filenames separated by spaces or colons
1126 (i.e., ":") on Unix, semicolons on OS/2 EMX.
1128 If the TERMPATH environment variable is not set,
1129 <STRONG>ncurses</STRONG> looks in the files /etc/termcap,
1130 /usr/share/misc/termcap and $HOME/.termcap, in that
1133 The library may be configured to disregard the following
1134 variables when the current user is the superuser (root),
1135 or if the application uses setuid or setgid permissions:
1137 $TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as
1142 <H2><a name="h2-ALTERNATE-CONFIGURATIONS">ALTERNATE CONFIGURATIONS</a></H2><PRE>
1143 Several different configurations are possible, depending
1144 on the configure script options used when building
1145 <STRONG>ncurses</STRONG>. There are a few main options whose effects are
1146 visible to the applications developer using <STRONG>ncurses</STRONG>:
1149 The standard include for <STRONG>ncurses</STRONG> is as noted in <STRONG>SYN-</STRONG>
1150 <STRONG>OPSIS</STRONG>:
1152 <STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
1154 This option is used to avoid filename conflicts when
1155 <STRONG>ncurses</STRONG> is not the main implementation of curses of
1156 the computer. If <STRONG>ncurses</STRONG> is installed disabling
1157 overwrite, it puts its headers in a subdirectory,
1160 <STRONG>#include</STRONG> <STRONG><ncurses/curses.h></STRONG>
1162 It also omits a symbolic link which would allow you
1163 to use <STRONG>-lcurses</STRONG> to build executables.
1166 The configure script renames the library and (if the
1167 <STRONG>--disable-overwrite</STRONG> option is used) puts the header
1168 files in a different subdirectory. All of the
1169 library names have a "w" appended to them, i.e.,
1172 <STRONG>-lncurses</STRONG>
1176 <STRONG>-lncursesw</STRONG>
1178 You must also define <STRONG>_XOPEN_SOURCE_EXTENDED</STRONG> when com-
1179 piling for the wide-character library to use the
1180 extended (wide-character) functions. The <STRONG>curses.h</STRONG>
1181 file which is installed for the wide-character
1182 library is designed to be compatible with the normal
1183 library's header. Only the size of the <STRONG>WINDOW</STRONG> struc-
1184 ture differs, and very few applications require more
1185 than a pointer to <STRONG>WINDOW</STRONG>s. If the headers are
1186 installed allowing overwrite, the wide-character
1187 library's headers should be installed last, to allow
1188 applications to be built using either library from
1189 the same set of headers.
1192 The configure script renames the library. All of the
1193 library names have a "t" appended to them (before any
1194 "w" added by <STRONG>--enable-widec</STRONG>).
1196 The global variables such as <STRONG>LINES</STRONG> are replaced by
1197 macros to allow read-only access. At the same time,
1198 setter-functions are provided to set these values.
1199 Some applications (very few) may require changes to
1200 work with this convention.
1209 The shared and normal (static) library names differ
1210 by their suffixes, e.g., <STRONG>libncurses.so</STRONG> and <STRONG>libn-</STRONG>
1211 <STRONG>curses.a</STRONG>. The debug and profiling libraries add a
1212 "_g" and a "_p" to the root names respectively, e.g.,
1213 <STRONG>libncurses_g.a</STRONG> and <STRONG>libncurses_p.a</STRONG>.
1216 The <STRONG>trace</STRONG> function normally resides in the debug
1217 library, but it is sometimes useful to configure this
1218 in the shared library. Configure scripts should
1219 check for the function's existence rather than assum-
1220 ing it is always in the debug library.
1224 <H2><a name="h2-FILES">FILES</a></H2><PRE>
1226 directory containing initialization files for the
1227 terminal capability database /usr/share/terminfo ter-
1228 minal capability database
1232 <H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
1233 <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> and related pages whose names begin "curs_"
1234 for detailed routine descriptions.
1235 <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
1239 <H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
1240 The <STRONG>ncurses</STRONG> library can be compiled with an option
1241 (<STRONG>-DUSE_GETCAP</STRONG>) that falls back to the old-style /etc/term-
1242 cap file if the terminal setup code cannot find a terminfo
1243 entry corresponding to <STRONG>TERM</STRONG>. Use of this feature is not
1244 recommended, as it essentially includes an entire termcap
1245 compiler in the <STRONG>ncurses</STRONG> startup code, at significant cost
1246 in core and startup cycles.
1248 The <STRONG>ncurses</STRONG> library includes facilities for capturing
1249 mouse events on certain terminals (including xterm). See
1250 the <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> manual page for details.
1252 The <STRONG>ncurses</STRONG> library includes facilities for responding to
1253 window resizing events, e.g., when running in an xterm.
1254 See the <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> and <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG> manual pages for
1255 details. In addition, the library may be configured with
1258 The <STRONG>ncurses</STRONG> library extends the fixed set of function key
1259 capabilities of terminals by allowing the application
1260 designer to define additional key sequences at runtime.
1261 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 <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG> man-
1262 ual pages for details.
1264 The <STRONG>ncurses</STRONG> library can exploit the capabilities of termi-
1265 nals which implement the ISO-6429 SGR 39 and SGR 49 con-
1266 trols, which allow an application to reset the terminal to
1267 its original foreground and background colors. From the
1268 users' perspective, the application is able to draw col-
1269 ored text on a background whose color is set indepen-
1270 dently, providing better control over color contrasts.
1271 See the <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG> manual page for details.
1273 The <STRONG>ncurses</STRONG> library includes a function for directing
1274 application output to a printer attached to the terminal
1275 device. See the <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG> manual page for details.
1279 <H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
1280 The <STRONG>ncurses</STRONG> library is intended to be BASE-level confor-
1281 mant with XSI Curses. The EXTENDED XSI Curses functional-
1282 ity (including color support) is supported.
1284 A small number of local differences (that is, individual
1285 differences between the XSI Curses and <STRONG>ncurses</STRONG> calls) are
1286 described in <STRONG>PORTABILITY</STRONG> sections of the library man
1289 Unlike other implementations, this one checks parameters
1290 such as pointers to WINDOW structures to ensure they are
1291 not null. The main reason for providing this behavior is
1292 to guard against programmer error. The standard interface
1293 does not provide a way for the library to tell an applica-
1294 tion which of several possible errors were detected.
1295 Relying on this (or some other) extension will adversely
1296 affect the portability of curses applications.
1298 This implementation also contains several extensions:
1300 <STRONG>o</STRONG> The routine <STRONG>has_key</STRONG> is not part of XPG4, nor is it
1301 present in SVr4. See the <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> manual page
1304 <STRONG>o</STRONG> The routine <STRONG>slk_attr</STRONG> is not part of XPG4, nor is it
1305 present in SVr4. See the <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> manual page for
1308 <STRONG>o</STRONG> The routines <STRONG>getmouse</STRONG>, <STRONG>mousemask</STRONG>, <STRONG>ungetmouse</STRONG>, <STRONG>mousein-</STRONG>
1309 <STRONG>terval</STRONG>, and <STRONG>wenclose</STRONG> relating to mouse interfacing are
1310 not part of XPG4, nor are they present in SVr4. See
1311 the <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> manual page for details.
1313 <STRONG>o</STRONG> The routine <STRONG>mcprint</STRONG> was not present in any previous
1314 curses implementation. See the <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG> manual
1317 <STRONG>o</STRONG> The routine <STRONG>wresize</STRONG> is not part of XPG4, nor is it
1318 present in SVr4. See the <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG> manual page for
1321 <STRONG>o</STRONG> The WINDOW structure's internal details can be hidden
1322 from application programs. See <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG> for
1323 the discussion of <STRONG>is_scrollok</STRONG>, etc.
1325 <STRONG>o</STRONG> This implementation can be configured to provide rudi-
1326 mentary support for multi-threaded applications. See
1327 <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG> for details.
1329 <STRONG>o</STRONG> This implementation can also be configured to provide
1330 a set of functions which improve the ability to manage
1331 multiple screens. See <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG> for details.
1333 In historic curses versions, delays embedded in the capa-
1334 bilities <STRONG>cr</STRONG>, <STRONG>ind</STRONG>, <STRONG>cub1</STRONG>, <STRONG>ff</STRONG> and <STRONG>tab</STRONG> activated corresponding
1335 delay bits in the UNIX tty driver. In this implementa-
1336 tion, all padding is done by sending NUL bytes. This
1337 method is slightly more expensive, but narrows the inter-
1338 face to the UNIX kernel significantly and increases the
1339 package's portability correspondingly.
1343 <H2><a name="h2-NOTES">NOTES</a></H2><PRE>
1344 The header file <STRONG><curses.h></STRONG> automatically includes the
1345 header files <STRONG><stdio.h></STRONG> and <STRONG><unctrl.h></STRONG>.
1347 If standard output from a <STRONG>ncurses</STRONG> program is re-directed
1348 to something which is not a tty, screen updates will be
1349 directed to standard error. This was an undocumented fea-
1350 ture of AT&T System V Release 3 curses.
1354 <H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
1355 Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
1356 Based on pcurses by Pavel Curtis.
1360 <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
1364 <li><a href="#h2-NAME">NAME</a></li>
1365 <li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
1366 <li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
1368 <li><a href="#h3-Routine-and-Argument-Names">Routine and Argument Names</a></li>
1369 <li><a href="#h3-Routine-Name-Index">Routine Name Index</a></li>
1372 <li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
1373 <li><a href="#h2-ENVIRONMENT">ENVIRONMENT</a></li>
1374 <li><a href="#h2-ALTERNATE-CONFIGURATIONS">ALTERNATE CONFIGURATIONS</a></li>
1375 <li><a href="#h2-FILES">FILES</a></li>
1376 <li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
1377 <li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
1378 <li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
1379 <li><a href="#h2-NOTES">NOTES</a></li>
1380 <li><a href="#h2-AUTHORS">AUTHORS</a></li>