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