1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
4 ****************************************************************************
5 * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
7 * Permission is hereby granted, free of charge, to any person obtaining a *
8 * copy of this software and associated documentation files (the *
9 * "Software"), to deal in the Software without restriction, including *
10 * without limitation the rights to use, copy, modify, merge, publish, *
11 * distribute, distribute with modifications, sublicense, and/or sell *
12 * copies of the Software, and to permit persons to whom the Software is *
13 * furnished to do so, subject to the following conditions: *
15 * The above copyright notice and this permission notice shall be included *
16 * in all copies or substantial portions of the Software. *
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
19 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
20 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
21 * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
22 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
23 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
24 * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
26 * Except as contained in this notice, the name(s) of the above copyright *
27 * holders shall not be used in advertising or otherwise to promote the *
28 * sale, use or other dealings in this Software without prior written *
30 ****************************************************************************
31 * @Id: ncurses.3x,v 1.111 2013/03/02 22:15:25 tom Exp @
35 <TITLE>ncurses 3x</TITLE>
36 <link rev=made href="mailto:bug-ncurses@gnu.org">
37 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
43 <!-- Manpage converted by man2html 3.0.1 -->
44 <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
51 <STRONG>ncurses</STRONG> - CRT screen handling and optimization package
55 <H2>SYNOPSIS</H2><PRE>
56 <STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
60 <H2>DESCRIPTION</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
64 curses'' (ncurses) and is the approved replacement for
65 4.4BSD classic curses, which has been discontinued. This
66 describes <STRONG>ncurses</STRONG> version 5.9 (patch 20130518).
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.
217 <STRONG>Routine</STRONG> <STRONG>and</STRONG> <STRONG>Argument</STRONG> <STRONG>Names</STRONG>
218 Many <STRONG>curses</STRONG> routines have two or more versions. The rou-
219 tines prefixed with <STRONG>w</STRONG> require a window argument. The rou-
220 tines prefixed with <STRONG>p</STRONG> require a pad argument. Those with-
221 out a prefix generally use <STRONG>stdscr</STRONG>.
223 The routines prefixed with <STRONG>mv</STRONG> require a <EM>y</EM> and <EM>x</EM> coordinate
224 to move to before performing the appropriate action. The
225 <STRONG>mv</STRONG> routines imply a call to <STRONG>move</STRONG> before the call to the
226 other routine. The coordinate <EM>y</EM> always refers to the row
227 (of the window), and <EM>x</EM> always refers to the column. The
228 upper left-hand corner is always (0,0), not (1,1).
230 The routines prefixed with <STRONG>mvw</STRONG> take both a window argument
231 and <EM>x</EM> and <EM>y</EM> coordinates. The window argument is always
232 specified before the coordinates.
234 In each case, <EM>win</EM> is the window affected, and <EM>pad</EM> is the
235 pad affected; <EM>win</EM> and <EM>pad</EM> are always pointers to type <STRONG>WIN-</STRONG>
236 <STRONG>DOW</STRONG>.
238 Option setting routines require a Boolean flag <EM>bf</EM> with the
239 value <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>; <EM>bf</EM> is always of type <STRONG>bool</STRONG>. Most of
240 the data types used in the library routines, such as <STRONG>WIN-</STRONG>
241 <STRONG>DOW</STRONG>, <STRONG>SCREEN</STRONG>, <STRONG>bool</STRONG>, and <STRONG>chtype</STRONG> are defined in <STRONG><curses.h></STRONG>.
242 Types used for the terminfo routines such as <STRONG>TERMINAL</STRONG> are
243 defined in <STRONG><term.h></STRONG>.
245 This manual page describes functions which may appear in
246 any configuration of the library. There are two common
247 configurations of the library:
250 the "normal" library, which handles 8-bit
251 characters. The normal (8-bit) library stores
252 characters combined with attributes in <STRONG>chtype</STRONG>
255 Attributes alone (no corresponding character)
256 may be stored in <STRONG>chtype</STRONG> or the equivalent
257 <STRONG>attr_t</STRONG> data. In either case, the data is
258 stored in something like an integer.
260 Each cell (row and column) in a <STRONG>WINDOW</STRONG> is
261 stored as a <STRONG>chtype</STRONG>.
264 the so-called "wide" library, which handles
265 multibyte characters (see the section on
266 <STRONG>ALTERNATE</STRONG> <STRONG>CONFIGURATIONS</STRONG>). The "wide" library
267 includes all of the calls from the "normal"
268 library. It adds about one third more calls
269 using data types which store multibyte charac-
272 <STRONG>cchar_t</STRONG>
273 corresponds to <STRONG>chtype</STRONG>. However it is a
274 structure, because more data is stored
275 than can fit into an integer. The char-
276 acters are large enough to require a full
277 integer value - and there may be more
278 than one character per cell. The video
279 attributes and color are stored in sepa-
280 rate fields of the structure.
282 Each cell (row and column) in a <STRONG>WINDOW</STRONG> is
283 stored as a <STRONG>cchar_t</STRONG>.
285 <STRONG>wchar_t</STRONG>
286 stores a "wide" character. Like <STRONG>chtype</STRONG>,
287 this may be an integer.
289 <STRONG>wint_t</STRONG>
290 stores a <STRONG>wchar_t</STRONG> or <STRONG>WEOF</STRONG> - not the same,
291 though both may have the same size.
293 The "wide" library provides new functions
294 which are analogous to functions in the "nor-
295 mal" library. There is a naming convention
296 which relates many of the normal/wide vari-
297 ants: a "_w" is inserted into the name. For
298 example, <STRONG>waddch</STRONG> becomes <STRONG>wadd_wch</STRONG>.
300 <STRONG>Routine</STRONG> <STRONG>Name</STRONG> <STRONG>Index</STRONG>
301 The following table lists each <STRONG>curses</STRONG> routine and the name
302 of the manual page on which it is described. Routines
303 flagged with `*' are ncurses-specific, not described by
304 XPG4 or present in SVr4.
306 <STRONG>curses</STRONG> Routine Name Manual Page Name
307 --------------------------------------------
308 COLOR_PAIR <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
309 PAIR_NUMBER <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
310 _nc_free_and_exit <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>*
311 _nc_freeall <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>*
312 _nc_tracebits <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
314 _traceattr <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
315 _traceattr2 <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
316 _tracechar <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
317 _tracechtype <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
318 _tracechtype2 <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
319 _tracedump <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
320 _tracef <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
321 _tracemouse <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
322 add_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
323 add_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
324 add_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
325 addch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
326 addchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
327 addchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
328 addnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
329 addnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
330 addstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
331 addwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
332 assume_default_colors <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>*
333 attr_get <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
334 attr_off <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
335 attr_on <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
336 attr_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
337 attroff <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
338 attron <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
339 attrset <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
340 baudrate <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
341 beep <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
342 bkgd <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
343 bkgdset <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
344 bkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
345 bkgrndset <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
346 border <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
347 border_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
348 box <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
349 box_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
350 can_change_color <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
351 cbreak <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
352 chgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
353 clear <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
354 clearok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
355 clrtobot <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
356 clrtoeol <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
357 color_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
358 color_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
359 copywin <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
360 curs_set <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
361 curses_version <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>*
362 def_prog_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
363 def_shell_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
364 define_key <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>*
365 del_curterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
366 delay_output <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
367 delch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
368 deleteln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
369 delscreen <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
370 delwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
371 derwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
372 doupdate <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
373 dupwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
374 echo <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
375 echo_wchar <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
376 echochar <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
377 endwin <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
378 erase <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
380 erasechar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
381 erasewchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
382 filter <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
383 flash <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
384 flushinp <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
385 get_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
386 get_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
387 getattrs <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
388 getbegx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
389 getbegy <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
390 getbegyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
391 getbkgd <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
392 getbkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
393 getcchar <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
394 getch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
395 getcurx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
396 getcury <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
397 getmaxx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
398 getmaxy <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
399 getmaxyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
400 getmouse <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
401 getn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
402 getnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
403 getparx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
404 getpary <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
405 getparyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
406 getstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
407 getsyx <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
408 getwin <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
409 getyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
410 halfdelay <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
411 has_colors <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
412 has_ic <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
413 has_il <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
414 has_key <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>*
415 hline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
416 hline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
417 idcok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
418 idlok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
419 immedok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
420 in_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
421 in_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
422 in_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
423 inch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
424 inchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
425 inchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
426 init_color <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
427 init_pair <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
428 initscr <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
429 innstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
430 innwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
431 ins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
432 ins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
433 ins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
434 insch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
435 insdelln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
436 insertln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
437 insnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
438 insstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
439 instr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
440 intrflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
441 inwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
442 is_cleared <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
443 is_idcok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
444 is_idlok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
446 is_immedok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
447 is_keypad <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
448 is_leaveok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
449 is_linetouched <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
450 is_nodelay <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
451 is_notimeout <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
452 is_scrollok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
453 is_syncok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
454 is_term_resized <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>*
455 is_wintouched <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
456 isendwin <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
457 key_defined <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>*
458 key_name <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
459 keybound <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>*
460 keyname <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
461 keyok <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>*
462 keypad <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
463 killchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
464 killwchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
465 leaveok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
466 longname <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
467 mcprint <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>*
468 meta <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
469 mouse_trafo <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
470 mouseinterval <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
471 mousemask <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
472 move <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
473 mvadd_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
474 mvadd_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
475 mvadd_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
476 mvaddch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
477 mvaddchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
478 mvaddchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
479 mvaddnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
480 mvaddnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
481 mvaddstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
482 mvaddwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
483 mvchgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
484 mvcur <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
485 mvdelch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
486 mvderwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
487 mvget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
488 mvget_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
489 mvgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
490 mvgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
491 mvgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
492 mvgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
493 mvhline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
494 mvhline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
495 mvin_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
496 mvin_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
497 mvin_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
498 mvinch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
499 mvinchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
500 mvinchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
501 mvinnstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
502 mvinnwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
503 mvins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
504 mvins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
505 mvins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
506 mvinsch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
507 mvinsnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
508 mvinsstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
509 mvinstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
510 mvinwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
512 mvprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
513 mvscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
514 mvvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
515 mvvline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
516 mvwadd_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
517 mvwadd_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
518 mvwadd_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
519 mvwaddch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
520 mvwaddchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
521 mvwaddchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
522 mvwaddnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
523 mvwaddnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
524 mvwaddstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
525 mvwaddwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
526 mvwchgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
527 mvwdelch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
528 mvwget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
529 mvwget_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
530 mvwgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
531 mvwgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
532 mvwgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
533 mvwgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
534 mvwhline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
535 mvwhline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
536 mvwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
537 mvwin_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
538 mvwin_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
539 mvwin_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
540 mvwinch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
541 mvwinchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
542 mvwinchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
543 mvwinnstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
544 mvwinnwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
545 mvwins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
546 mvwins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
547 mvwins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
548 mvwinsch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
549 mvwinsnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
550 mvwinsstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
551 mvwinstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
552 mvwinwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
553 mvwprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
554 mvwscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
555 mvwvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
556 mvwvline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
557 napms <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
558 newpad <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
559 newterm <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
560 newwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
561 nl <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
562 nocbreak <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
563 nodelay <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
564 noecho <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
565 nofilter <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>*
566 nonl <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
567 noqiflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
568 noraw <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
569 notimeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
570 overlay <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
571 overwrite <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
572 pair_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
573 pechochar <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
574 pnoutrefresh <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
575 prefresh <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
576 printw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
578 putp <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
579 putwin <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
580 qiflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
581 raw <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
582 redrawwin <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
583 refresh <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
584 reset_prog_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
585 reset_shell_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
586 resetty <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
587 resizeterm <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>*
588 restartterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
589 ripoffline <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
590 savetty <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
591 scanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
592 scr_dump <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
593 scr_init <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
594 scr_restore <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
595 scr_set <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
596 scrl <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
597 scroll <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
598 scrollok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
599 set_curterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
600 set_term <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
601 setcchar <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
602 setscrreg <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
603 setsyx <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
604 setterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
605 setupterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
606 slk_attr <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>*
607 slk_attr_off <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
608 slk_attr_on <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
609 slk_attr_set <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
610 slk_attroff <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
611 slk_attron <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
612 slk_attrset <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
613 slk_clear <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
614 slk_color <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
615 slk_init <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
616 slk_label <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
617 slk_noutrefresh <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
618 slk_refresh <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
619 slk_restore <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
620 slk_set <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
621 slk_touch <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
622 standend <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
623 standout <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
624 start_color <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
625 subpad <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
626 subwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
627 syncok <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
628 term_attrs <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
629 termattrs <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
630 termname <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
631 tgetent <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
632 tgetflag <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
633 tgetnum <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
634 tgetstr <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
635 tgoto <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
636 tigetflag <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
637 tigetnum <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
638 tigetstr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
639 timeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
640 touchline <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
641 touchwin <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
642 tparm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
644 tputs <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
645 tputs <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
646 trace <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
647 typeahead <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
648 unctrl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
649 unget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
650 ungetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
651 ungetmouse <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
652 untouchwin <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
653 use_default_colors <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>*
654 use_env <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
655 use_extended_names <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>*
656 use_legacy_coding <STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG>*
657 use_tioctl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
658 vid_attr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
659 vid_puts <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
660 vidattr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
661 vidputs <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
662 vline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
663 vline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
664 vw_printw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
665 vw_scanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
666 vwprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
667 vwscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
668 wadd_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
669 wadd_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
670 wadd_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
671 waddch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
672 waddchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
673 waddchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
674 waddnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
675 waddnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
676 waddstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
677 waddwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
678 wattr_get <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
679 wattr_off <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
680 wattr_on <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
681 wattr_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
682 wattroff <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
683 wattron <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
684 wattrset <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
685 wbkgd <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
686 wbkgdset <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
687 wbkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
688 wbkgrndset <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
689 wborder <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
690 wborder_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
691 wchgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
692 wclear <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
693 wclrtobot <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
694 wclrtoeol <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
695 wcolor_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
696 wcursyncup <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
697 wdelch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
698 wdeleteln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
699 wecho_wchar <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
700 wechochar <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
701 wenclose <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
702 werase <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
703 wget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
704 wget_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
705 wgetbkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
706 wgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
707 wgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
708 wgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
710 wgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
711 whline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
712 whline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
713 win_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
714 win_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
715 win_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
716 winch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
717 winchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
718 winchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
719 winnstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
720 winnwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
721 wins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
722 wins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
723 wins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
724 winsch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
725 winsdelln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
726 winsertln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
727 winsnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
728 winsstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
729 winstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
730 winwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
731 wmouse_trafo <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
732 wmove <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
733 wnoutrefresh <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
734 wprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
735 wredrawln <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
736 wrefresh <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
737 wresize <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>*
738 wscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
739 wscrl <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
740 wsetscrreg <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
741 wstandend <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
742 wstandout <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
743 wsyncdown <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
744 wsyncup <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
745 wtimeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
746 wtouchln <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
747 wunctrl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
748 wvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
749 wvline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
753 <H2>RETURN VALUE</H2><PRE>
754 Routines that return an integer return <STRONG>ERR</STRONG> upon failure
755 and an integer value other than <STRONG>ERR</STRONG> upon successful com-
756 pletion, unless otherwise noted in the routine descrip-
759 As a general rule, routines check for null pointers passed
760 as parameters, and handle this as an error.
762 All macros return the value of the <STRONG>w</STRONG> version, except
763 <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>, and <STRONG>getmaxyx</STRONG>. The
764 return values of <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>,
765 and <STRONG>getmaxyx</STRONG> are undefined (i.e., these should not be used
766 as the right-hand side of assignment statements).
768 Routines that return pointers return <STRONG>NULL</STRONG> on error.
772 <H2>ENVIRONMENT</H2><PRE>
773 The following environment symbols are useful for customiz-
774 ing the runtime behavior of the <STRONG>ncurses</STRONG> library. The most
775 important ones have been already discussed in detail.
778 The debugging library checks this environment vari-
779 able when the application has redirected output to a
780 file. The variable's numeric value is used for the
781 baudrate. If no value is found, <STRONG>ncurses</STRONG> uses 9600.
782 This allows testers to construct repeatable test-
783 cases that take into account costs that depend on
786 CC When set, change occurrences of the command_character
787 (i.e., the <STRONG>cmdch</STRONG> capability) of the loaded terminfo
788 entries to the value of this variable. Very few ter-
789 minfo entries provide this feature.
791 Because this name is also used in development envi-
792 ronments to represent the C compiler's name, <STRONG>ncurses</STRONG>
793 ignores it if it does not happen to be a single char-
797 Specify the width of the screen in characters.
798 Applications running in a windowing environment usu-
799 ally are able to obtain the width of the window in
800 which they are executing. If neither the <STRONG>COLUMNS</STRONG>
801 value nor the terminal's screen size is available,
802 <STRONG>ncurses</STRONG> uses the size which may be specified in the
803 terminfo database (i.e., the <STRONG>cols</STRONG> capability).
805 It is important that your application use a correct
806 size for the screen. This is not always possible
807 because your application may be running on a host
808 which does not honor NAWS (Negotiations About Window
809 Size), or because you are temporarily running as
810 another user. However, setting <STRONG>COLUMNS</STRONG> and/or <STRONG>LINES</STRONG>
811 overrides the library's use of the screen size
812 obtained from the operating system.
814 Either <STRONG>COLUMNS</STRONG> or <STRONG>LINES</STRONG> symbols may be specified
815 independently. This is mainly useful to circumvent
816 legacy misfeatures of terminal descriptions, e.g.,
817 xterm which commonly specifies a 65 line screen. For
818 best results, <STRONG>lines</STRONG> and <STRONG>cols</STRONG> should not be specified
819 in a terminal description for terminals which are run
822 Use the <STRONG>use_env</STRONG> function to disable all use of exter-
823 nal environment (but not including system calls) to
824 determine the screen size. Use the <STRONG>use_tioctl</STRONG> func-
825 tion to update <STRONG>COLUMNS</STRONG> or <STRONG>LINES</STRONG> to match the screen
826 size obtained from system calls or the terminal data-
830 Specifies the total time, in milliseconds, for which
831 ncurses will await a character sequence, e.g., a
832 function key. The default value, 1000 milliseconds,
833 is enough for most uses. However, it is made a vari-
834 able to accommodate unusual applications.
836 The most common instance where you may wish to change
837 this value is to work with slow hosts, e.g., running
838 on a network. If the host cannot read characters
839 rapidly enough, it will have the same effect as if
840 the terminal did not send characters rapidly enough.
841 The library will still see a timeout.
843 Note that xterm mouse events are built up from char-
844 acter sequences received from the xterm. If your
845 application makes heavy use of multiple-clicking, you
846 may wish to lengthen this default value because the
847 timeout applies to the composed multi-click event as
848 well as the individual clicks.
850 In addition to the environment variable, this imple-
851 mentation provides a global variable with the same
852 name. Portable applications should not rely upon the
853 presence of ESCDELAY in either form, but setting the
854 environment variable rather than the global variable
855 does not create problems when compiling an applica-
858 HOME Tells <STRONG>ncurses</STRONG> where your home directory is. That is
859 where it may read and write auxiliary terminal
866 Like COLUMNS, specify the height of the screen in
867 characters. See COLUMNS for a detailed description.
870 This applies only to the OS/2 EMX port. It specifies
871 the order of buttons on the mouse. OS/2 numbers a
872 3-button mouse inconsistently from other platforms:
878 This variable lets you customize the mouse. The
879 variable must be three numeric digits 1-3 in any
880 order, e.g., 123 or 321. If it is not specified,
881 <STRONG>ncurses</STRONG> uses 132.
883 NCURSES_ASSUMED_COLORS
884 Override the compiled-in assumption that the termi-
885 nal's default colors are white-on-black (see
886 <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>). You may set the foreground and
887 background color values with this environment vari-
888 able by proving a 2-element list: foreground,back-
889 ground. For example, to tell ncurses to not assume
890 anything about the colors, set this to "-1,-1". To
891 make it green-on-black, set it to "2,0". Any posi-
892 tive value from zero to the terminfo <STRONG>max_colors</STRONG> value
896 This applies only to ncurses configured to use the
899 If present, the environment variable is a list of one
900 or more terminal names against which the TERM envi-
901 ronment variable is matched. Setting it to an empty
902 value disables the GPM interface; using the built-in
903 support for xterm, etc.
905 If the environment variable is absent, ncurses will
906 attempt to open GPM if TERM contains "linux".
909 <STRONG>Ncurses</STRONG> may use tabs as part of the cursor movement
910 optimization. In some cases, your terminal driver
911 may not handle these properly. Set this environment
912 variable to disable the feature. You can also adjust
913 your <STRONG>stty</STRONG> settings to avoid the problem.
915 NCURSES_NO_MAGIC_COOKIES
916 Some terminals use a magic-cookie feature which
917 requires special handling to make highlighting and
918 other video attributes display properly. You can
919 suppress the highlighting entirely for these termi-
920 nals by setting this environment variable.
923 Most of the terminal descriptions in the terminfo
924 database are written for real "hardware" terminals.
925 Many people use terminal emulators which run in a
926 windowing environment and use curses-based applica-
927 tions. Terminal emulators can duplicate all of the
928 important aspects of a hardware terminal, but they do
929 not have the same limitations. The chief limitation
930 of a hardware terminal from the standpoint of your
931 application is the management of dataflow, i.e., tim-
932 ing. Unless a hardware terminal is interfaced into a
933 terminal concentrator (which does flow control), it
934 (or your application) must manage dataflow, prevent-
935 ing overruns. The cheapest solution (no hardware
936 cost) is for your program to do this by pausing after
937 operations that the terminal does slowly, such as
938 clearing the display.
940 As a result, many terminal descriptions (including
941 the vt100) have delay times embedded. You may wish
942 to use these descriptions, but not want to pay the
945 Set the NCURSES_NO_PADDING environment variable to
946 disable all but mandatory padding. Mandatory padding
947 is used as a part of special control sequences such
951 This setting is obsolete. Before changes
953 <STRONG>o</STRONG> started with 5.9 patch 20120825 and
955 <STRONG>o</STRONG> continued though 5.9 patch 20130126
957 <STRONG>ncurses</STRONG> enabled buffered output during terminal ini-
958 tialization. This was done (as in SVr4 curses) for
959 performance reasons. For testing purposes, both of
960 <STRONG>ncurses</STRONG> and certain applications, this feature was
961 made optional. Setting the NCURSES_NO_SETBUF vari-
962 able disabled output buffering, leaving the output in
963 the original (usually line buffered) mode.
965 In the current implementation, ncurses performs its
966 own buffering and does not require this workaround.
967 It does not modify the buffering of the standard out-
970 The reason for the change was to make the behavior
971 for interrupts and other signals more robust. One
972 drawback is that certain nonconventional programs
973 would mix ordinary stdio calls with ncurses calls and
974 (usually) work. This is no longer possible since
975 ncurses is not using the buffered standard output but
976 its own output (to the same file descriptor). As a
977 special case, the low-level calls such as <STRONG>putp</STRONG> still
978 use the standard output. But high-level curses calls
982 During initialization, the <STRONG>ncurses</STRONG> library checks for
983 special cases where VT100 line-drawing (and the cor-
984 responding alternate character set capabilities)
985 described in the terminfo are known to be missing.
986 Specifically, when running in a UTF-8 locale, the
987 Linux console emulator and the GNU screen program
988 ignore these. Ncurses checks the TERM environment
989 variable for these. For other special cases, you
990 should set this environment variable. Doing this
991 tells ncurses to use Unicode values which correspond
992 to the VT100 line-drawing glyphs. That works for the
993 special cases cited, and is likely to work for termi-
996 When setting this variable, you should set it to a
997 nonzero value. Setting it to zero (or to a nonnum-
998 ber) disables the special check for "linux" and
1001 As an alternative to the environment variable,
1002 ncurses checks for an extended terminfo capability
1003 <STRONG>U8</STRONG>. This is a numeric capability which can be com-
1004 piled using <STRONG>tic</STRONG> <STRONG>-x</STRONG>. For example
1006 # linux console, if patched to provide working
1007 # VT100 shift-in/shift-out, with corresponding font.
1008 linux-vt100|linux console with VT100 line-graphics,
1011 # uxterm with vt100Graphics resource set to false
1012 xterm-utf8|xterm relying on UTF-8 line-graphics,
1015 The name "U8" is chosen to be two characters, to per-
1016 mit it to be used by applications that use ncurses'
1020 During initialization, the <STRONG>ncurses</STRONG> debugging library
1021 checks the NCURSES_TRACE environment variable. If it
1022 is defined, to a numeric value, <STRONG>ncurses</STRONG> calls the
1023 <STRONG>trace</STRONG> function, using that value as the argument.
1025 The argument values, which are defined in <STRONG>curses.h</STRONG>,
1026 provide several types of information. When running
1027 with traces enabled, your application will write the
1028 file <STRONG>trace</STRONG> to the current directory.
1030 TERM Denotes your terminal type. Each terminal type is
1031 distinct, though many are similar.
1034 If the <STRONG>ncurses</STRONG> library has been configured with <EM>term-</EM>
1035 <EM>cap</EM> support, <STRONG>ncurses</STRONG> will check for a terminal's
1036 description in termcap form if it is not available in
1037 the terminfo database.
1039 The TERMCAP environment variable contains either a
1040 terminal description (with newlines stripped out), or
1041 a file name telling where the information denoted by
1042 the TERM environment variable exists. In either
1043 case, setting it directs <STRONG>ncurses</STRONG> to ignore the usual
1044 place for this information, e.g., /etc/termcap.
1047 Overrides the directory in which <STRONG>ncurses</STRONG> searches for
1048 your terminal description. This is the simplest, but
1049 not the only way to change the list of directories.
1050 The complete list of directories in order follows:
1052 <STRONG>o</STRONG> the last directory to which <STRONG>ncurses</STRONG> wrote, if
1053 any, is searched first
1055 <STRONG>o</STRONG> the directory specified by the TERMINFO environ-
1058 <STRONG>o</STRONG> $HOME/.terminfo
1060 <STRONG>o</STRONG> directories listed in the TERMINFO_DIRS environ-
1063 <STRONG>o</STRONG> one or more directories whose names are config-
1064 ured and compiled into the ncurses library, i.e.,
1066 <STRONG>o</STRONG> /usr/local/ncurses/share/ter-
1067 minfo:/usr/share/terminfo (corresponding to
1068 the TERMINFO_DIRS variable)
1070 <STRONG>o</STRONG> /usr/share/terminfo (corresponding to the
1074 Specifies a list of directories to search for termi-
1075 nal descriptions. The list is separated by colons
1076 (i.e., ":") on Unix, semicolons on OS/2 EMX.
1078 All of the terminal descriptions are in terminfo
1079 form. Normally these are stored in a directory tree,
1080 using subdirectories named by the first letter of the
1081 terminal names therein.
1083 If <STRONG>ncurses</STRONG> is built with a hashed database, then each
1084 entry in this list can also be the path of the corre-
1085 sponding database file.
1087 If <STRONG>ncurses</STRONG> is built with a support for reading term-
1088 cap files directly, then an entry in this list may be
1089 the path of a termcap file.
1092 If TERMCAP does not hold a file name then <STRONG>ncurses</STRONG>
1093 checks the TERMPATH environment variable. This is a
1094 list of filenames separated by spaces or colons
1095 (i.e., ":") on Unix, semicolons on OS/2 EMX.
1097 If the TERMPATH environment variable is not set,
1098 <STRONG>ncurses</STRONG> looks in the files /etc/termcap,
1099 /usr/share/misc/termcap and $HOME/.termcap, in that
1102 The library may be configured to disregard the following
1103 variables when the current user is the superuser (root),
1104 or if the application uses setuid or setgid permissions:
1106 $TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as
1111 <H2>ALTERNATE CONFIGURATIONS</H2><PRE>
1112 Several different configurations are possible, depending
1113 on the configure script options used when building
1114 <STRONG>ncurses</STRONG>. There are a few main options whose effects are
1115 visible to the applications developer using <STRONG>ncurses</STRONG>:
1118 The standard include for <STRONG>ncurses</STRONG> is as noted in <STRONG>SYN-</STRONG>
1119 <STRONG>OPSIS</STRONG>:
1121 <STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
1123 This option is used to avoid filename conflicts when
1124 <STRONG>ncurses</STRONG> is not the main implementation of curses of
1125 the computer. If <STRONG>ncurses</STRONG> is installed disabling
1126 overwrite, it puts its headers in a subdirectory,
1129 <STRONG>#include</STRONG> <STRONG><ncurses/curses.h></STRONG>
1131 It also omits a symbolic link which would allow you
1132 to use <STRONG>-lcurses</STRONG> to build executables.
1135 The configure script renames the library and (if the
1136 <STRONG>--disable-overwrite</STRONG> option is used) puts the header
1137 files in a different subdirectory. All of the
1138 library names have a "w" appended to them, i.e.,
1141 <STRONG>-lncurses</STRONG>
1145 <STRONG>-lncursesw</STRONG>
1147 You must also define <STRONG>_XOPEN_SOURCE_EXTENDED</STRONG> when com-
1148 piling for the wide-character library to use the
1149 extended (wide-character) functions. The <STRONG>curses.h</STRONG>
1150 file which is installed for the wide-character
1151 library is designed to be compatible with the normal
1152 library's header. Only the size of the <STRONG>WINDOW</STRONG> struc-
1153 ture differs, and very few applications require more
1154 than a pointer to <STRONG>WINDOW</STRONG>s. If the headers are
1155 installed allowing overwrite, the wide-character
1156 library's headers should be installed last, to allow
1157 applications to be built using either library from
1158 the same set of headers.
1167 The shared and normal (static) library names differ
1168 by their suffixes, e.g., <STRONG>libncurses.so</STRONG> and <STRONG>libn-</STRONG>
1169 <STRONG>curses.a</STRONG>. The debug and profiling libraries add a
1170 "_g" and a "_p" to the root names respectively, e.g.,
1171 <STRONG>libncurses_g.a</STRONG> and <STRONG>libncurses_p.a</STRONG>.
1174 The <STRONG>trace</STRONG> function normally resides in the debug
1175 library, but it is sometimes useful to configure this
1176 in the shared library. Configure scripts should
1177 check for the function's existence rather than assum-
1178 ing it is always in the debug library.
1184 directory containing initialization files for the
1185 terminal capability database /usr/share/terminfo ter-
1186 minal capability database
1190 <H2>SEE ALSO</H2><PRE>
1191 <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> and related pages whose names begin "curs_"
1192 for detailed routine descriptions.
1193 <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
1197 <H2>EXTENSIONS</H2><PRE>
1198 The <STRONG>ncurses</STRONG> library can be compiled with an option
1199 (<STRONG>-DUSE_GETCAP</STRONG>) that falls back to the old-style /etc/term-
1200 cap file if the terminal setup code cannot find a terminfo
1201 entry corresponding to <STRONG>TERM</STRONG>. Use of this feature is not
1202 recommended, as it essentially includes an entire termcap
1203 compiler in the <STRONG>ncurses</STRONG> startup code, at significant cost
1204 in core and startup cycles.
1206 The <STRONG>ncurses</STRONG> library includes facilities for capturing
1207 mouse events on certain terminals (including xterm). See
1208 the <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> manual page for details.
1210 The <STRONG>ncurses</STRONG> library includes facilities for responding to
1211 window resizing events, e.g., when running in an xterm.
1212 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
1213 details. In addition, the library may be configured with
1216 The <STRONG>ncurses</STRONG> library extends the fixed set of function key
1217 capabilities of terminals by allowing the application
1218 designer to define additional key sequences at runtime.
1219 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-
1220 ual pages for details.
1222 The <STRONG>ncurses</STRONG> library can exploit the capabilities of termi-
1223 nals which implement the ISO-6429 SGR 39 and SGR 49 con-
1224 trols, which allow an application to reset the terminal to
1225 its original foreground and background colors. From the
1226 users' perspective, the application is able to draw col-
1227 ored text on a background whose color is set indepen-
1228 dently, providing better control over color contrasts.
1229 See the <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG> manual page for details.
1231 The <STRONG>ncurses</STRONG> library includes a function for directing
1232 application output to a printer attached to the terminal
1233 device. See the <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG> manual page for details.
1237 <H2>PORTABILITY</H2><PRE>
1238 The <STRONG>ncurses</STRONG> library is intended to be BASE-level confor-
1239 mant with XSI Curses. The EXTENDED XSI Curses functional-
1240 ity (including color support) is supported.
1242 A small number of local differences (that is, individual
1243 differences between the XSI Curses and <STRONG>ncurses</STRONG> calls) are
1244 described in <STRONG>PORTABILITY</STRONG> sections of the library man
1247 Unlike other implementations, this one checks parameters
1248 such as pointers to WINDOW structures to ensure they are
1249 not null. The main reason for providing this behavior is
1250 to guard against programmer error. The standard interface
1251 does not provide a way for the library to tell an applica-
1252 tion which of several possible errors were detected.
1253 Relying on this (or some other) extension will adversely
1254 affect the portability of curses applications.
1256 This implementation also contains several extensions:
1258 <STRONG>o</STRONG> The routine <STRONG>has_key</STRONG> is not part of XPG4, nor is it
1259 present in SVr4. See the <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> manual page
1262 <STRONG>o</STRONG> The routine <STRONG>slk_attr</STRONG> is not part of XPG4, nor is it
1263 present in SVr4. See the <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> manual page for
1266 <STRONG>o</STRONG> The routines <STRONG>getmouse</STRONG>, <STRONG>mousemask</STRONG>, <STRONG>ungetmouse</STRONG>, <STRONG>mousein-</STRONG>
1267 <STRONG>terval</STRONG>, and <STRONG>wenclose</STRONG> relating to mouse interfacing are
1268 not part of XPG4, nor are they present in SVr4. See
1269 the <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> manual page for details.
1271 <STRONG>o</STRONG> The routine <STRONG>mcprint</STRONG> was not present in any previous
1272 curses implementation. See the <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG> manual
1275 <STRONG>o</STRONG> The routine <STRONG>wresize</STRONG> is not part of XPG4, nor is it
1276 present in SVr4. See the <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG> manual page for
1279 <STRONG>o</STRONG> The WINDOW structure's internal details can be hidden
1280 from application programs. See <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG> for
1281 the discussion of <STRONG>is_scrollok</STRONG>, etc.
1283 <STRONG>o</STRONG> This implementation can be configured to provide rudi-
1284 mentary support for multi-threaded applications. See
1285 <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG> for details.
1287 <STRONG>o</STRONG> This implementation can also be configured to provide
1288 a set of functions which improve the ability to manage
1289 multiple screens. See <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG> for details.
1291 In historic curses versions, delays embedded in the capa-
1292 bilities <STRONG>cr</STRONG>, <STRONG>ind</STRONG>, <STRONG>cub1</STRONG>, <STRONG>ff</STRONG> and <STRONG>tab</STRONG> activated corresponding
1293 delay bits in the UNIX tty driver. In this implementa-
1294 tion, all padding is done by sending NUL bytes. This
1295 method is slightly more expensive, but narrows the inter-
1296 face to the UNIX kernel significantly and increases the
1297 package's portability correspondingly.
1302 The header file <STRONG><curses.h></STRONG> automatically includes the
1303 header files <STRONG><stdio.h></STRONG> and <STRONG><unctrl.h></STRONG>.
1305 If standard output from a <STRONG>ncurses</STRONG> program is re-directed
1306 to something which is not a tty, screen updates will be
1307 directed to standard error. This was an undocumented fea-
1308 ture of AT&T System V Release 3 curses.
1312 <H2>AUTHORS</H2><PRE>
1313 Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
1314 Based on pcurses by Pavel Curtis.
1318 <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
1322 Man(1) output converted with
1323 <a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>