blob: 76d55c0375aaa24e8e6259e62f0c5dde05f6acc7 [file] [log] [blame]
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301'\" t
2.\"***************************************************************************
Steve Kondikae271bc2015-11-15 02:50:53 +01003.\" Copyright (c) 1998-2014,2015 Free Software Foundation, Inc. *
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304.\" *
5.\" Permission is hereby granted, free of charge, to any person obtaining a *
6.\" copy of this software and associated documentation files (the *
7.\" "Software"), to deal in the Software without restriction, including *
8.\" without limitation the rights to use, copy, modify, merge, publish, *
9.\" distribute, distribute with modifications, sublicense, and/or sell *
10.\" copies of the Software, and to permit persons to whom the Software is *
11.\" furnished to do so, subject to the following conditions: *
12.\" *
13.\" The above copyright notice and this permission notice shall be included *
14.\" in all copies or substantial portions of the Software. *
15.\" *
16.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
17.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
18.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
19.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
20.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
21.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
22.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
23.\" *
24.\" Except as contained in this notice, the name(s) of the above copyright *
25.\" holders shall not be used in advertising or otherwise to promote the *
26.\" sale, use or other dealings in this Software without prior written *
27.\" authorization. *
28.\"***************************************************************************
29.\"
Steve Kondikae271bc2015-11-15 02:50:53 +010030.\" $Id: ncurses.3x,v 1.124 2015/08/08 14:57:51 tom Exp $
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053031.hy 0
32.TH ncurses 3X ""
Steve Kondikae271bc2015-11-15 02:50:53 +010033.ie \n(.g .ds `` \(lq
34.el .ds `` ``
35.ie \n(.g .ds '' \(rq
36.el .ds '' ''
37.de bP
38.IP \(bu 4
39..
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053040.ds n 5
41.ds d @TERMINFO@
42.SH NAME
Steve Kondikae271bc2015-11-15 02:50:53 +010043\fBncurses\fR \- CRT screen handling and optimization package
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053044.SH SYNOPSIS
45\fB#include <curses.h>\fR
46.br
47.SH DESCRIPTION
48The \fBncurses\fR library routines give the user a terminal-independent method
49of updating character screens with reasonable optimization.
Steve Kondikae271bc2015-11-15 02:50:53 +010050This implementation is \*(``new curses\*('' (ncurses) and
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053051is the approved replacement for
524.4BSD classic curses, which has been discontinued.
53This describes \fBncurses\fR
54version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
55.PP
Steve Kondikae271bc2015-11-15 02:50:53 +010056The \fBncurses\fR library emulates the curses library of
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053057System V Release 4 UNIX,
58and XPG4 (X/Open Portability Guide) curses (also known as XSI curses).
59XSI stands for X/Open System Interfaces Extension.
60The \fBncurses\fR library is freely redistributable in source form.
61Differences from the SVr4
Steve Kondikae271bc2015-11-15 02:50:53 +010062curses are summarized under the
63\fBEXTENSIONS\fP and \fBPORTABILITY\fP sections below and
64described in detail in the respective
65\fBEXTENSIONS\fP, \fBPORTABILITY\fP and \fBBUGS\fP sections
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053066of individual man pages.
67.PP
68The \fBncurses\fR library also provides many useful extensions,
69i.e., features which cannot be implemented by a simple add-on library
70but which require access to the internals of the library.
71.PP
Steve Kondikae271bc2015-11-15 02:50:53 +010072A program using these routines must be linked with the \fB\-lncurses\fR option,
73or (if it has been generated) with the debugging library \fB\-lncurses_g\fR.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053074(Your system integrator may also have installed these libraries under
Steve Kondikae271bc2015-11-15 02:50:53 +010075the names \fB\-lcurses\fR and \fB\-lcurses_g\fR.)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053076The ncurses_g library generates trace logs (in a file called 'trace' in the
77current directory) that describe curses actions.
78See also the section on \fBALTERNATE CONFIGURATIONS\fP.
79.PP
80The \fBncurses\fR package supports: overall screen, window and pad
81manipulation; output to windows and pads; reading terminal input; control over
82terminal and \fBcurses\fR input and output options; environment query
83routines; color manipulation; use of soft label keys; terminfo capabilities;
84and access to low-level terminal-manipulation routines.
Steve Kondikae271bc2015-11-15 02:50:53 +010085.SS Initialization
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053086.PP
87The library uses the locale which the calling program has initialized.
88That is normally done with \fBsetlocale\fP:
89.sp
90 \fBsetlocale(LC_ALL, "");\fP
91.sp
92If the locale is not initialized,
Steve Kondikae271bc2015-11-15 02:50:53 +010093the library assumes that characters are printable as in ISO\-8859\-1,
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053094to work with certain legacy programs.
95You should initialize the locale and not rely on specific details of
96the library when the locale has not been setup.
97.PP
98The function \fBinitscr\fR or \fBnewterm\fR
99must be called to initialize the library
100before any of the other routines that deal with windows
101and screens are used.
102The routine \fBendwin\fR must be called before exiting.
103.PP
104To get character-at-a-time input without echoing (most
105interactive, screen oriented programs want this), the following
106sequence should be used:
107.sp
108 \fBinitscr(); cbreak(); noecho();\fR
109.sp
110Most programs would additionally use the sequence:
111.sp
112 \fBnonl();\fR
113 \fBintrflush(stdscr, FALSE);\fR
114 \fBkeypad(stdscr, TRUE);\fR
115.sp
116Before a \fBcurses\fR program is run, the tab stops of the terminal
117should be set and its initialization strings, if defined, must be output.
Steve Kondikae271bc2015-11-15 02:50:53 +0100118This can be done by executing the \fB@TPUT@ init\fR command
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530119after the shell environment variable \fBTERM\fR has been exported.
Steve Kondikae271bc2015-11-15 02:50:53 +0100120\fB@TSET@(1)\fR is usually responsible for doing this.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530121[See \fBterminfo\fR(\*n) for further details.]
Steve Kondikae271bc2015-11-15 02:50:53 +0100122.SS Datatypes
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530123.PP
124The \fBncurses\fR library permits manipulation of data structures,
125called \fIwindows\fR, which can be thought of as two-dimensional
126arrays of characters representing all or part of a CRT screen.
127A default window called \fBstdscr\fR, which is the size of the terminal
128screen, is supplied.
129Others may be created with \fBnewwin\fR.
130.PP
131Note that \fBcurses\fR does not handle overlapping windows, that's done by
132the \fBpanel\fR(3X) library.
133This means that you can either use
134\fBstdscr\fR or divide the screen into tiled windows and not using
135\fBstdscr\fR at all.
136Mixing the two will result in unpredictable, and undesired, effects.
137.PP
138Windows are referred to by variables declared as \fBWINDOW *\fR.
139These data structures are manipulated with routines described here and
140elsewhere in the \fBncurses\fR manual pages.
141Among those, the most basic
142routines are \fBmove\fR and \fBaddch\fR.
143More general versions of
144these routines are included with names beginning with \fBw\fR,
145allowing the user to specify a window.
146The routines not beginning
147with \fBw\fR affect \fBstdscr\fR.
148.PP
149After using routines to manipulate a window, \fBrefresh\fR is called,
150telling \fBcurses\fR to make the user's CRT screen look like
151\fBstdscr\fR.
152The characters in a window are actually of type
153\fBchtype\fR, (character and attribute data) so that other information
154about the character may also be stored with each character.
155.PP
156Special windows called \fIpads\fR may also be manipulated.
157These are windows
158which are not constrained to the size of the screen and whose contents need not
159be completely displayed.
160See \fBcurs_pad\fR(3X) for more information.
161.PP
162In addition to drawing characters on the screen, video attributes and colors
163may be supported, causing the characters to show up in such modes as
164underlined, in reverse video, or in color on terminals that support such
165display enhancements.
166Line drawing characters may be specified to be output.
167On input, \fBcurses\fR is also able to translate arrow and function keys that
168transmit escape sequences into single values.
169The video attributes, line
170drawing characters, and input values use names, defined in \fB<curses.h>\fR,
171such as \fBA_REVERSE\fR, \fBACS_HLINE\fR, and \fBKEY_LEFT\fR.
Steve Kondikae271bc2015-11-15 02:50:53 +0100172.SS Environment variables
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530173.PP
174If the environment variables \fBLINES\fR and \fBCOLUMNS\fR are set, or if the
175program is executing in a window environment, line and column information in
176the environment will override information read by \fIterminfo\fR.
177This would affect a program running in an AT&T 630 layer,
178for example, where the size of a
179screen is changeable (see \fBENVIRONMENT\fR).
180.PP
181If the environment variable \fBTERMINFO\fR is defined, any program using
182\fBcurses\fR checks for a local terminal definition before checking in the
183standard place.
184For example, if \fBTERM\fR is set to \fBatt4424\fR, then the
185compiled terminal definition is found in
186.sp
187 \fB\*d/a/att4424\fR.
188.sp
189(The \fBa\fR is copied from the first letter of \fBatt4424\fR to avoid
190creation of huge directories.) However, if \fBTERMINFO\fR is set to
191\fB$HOME/myterms\fR, \fBcurses\fR first checks
192.sp
193 \fB$HOME/myterms/a/att4424\fR,
194.sp
195and if that fails, it then checks
196.sp
197 \fB\*d/a/att4424\fR.
198.sp
199This is useful for developing experimental definitions or when write
200permission in \fB\*d\fR is not available.
201.PP
202The integer variables \fBLINES\fR and \fBCOLS\fR are defined in
203\fB<curses.h>\fR and will be filled in by \fBinitscr\fR with the size of the
204screen.
205The constants \fBTRUE\fR and \fBFALSE\fR have the values \fB1\fR and
206\fB0\fR, respectively.
207.PP
208The \fBcurses\fR routines also define the \fBWINDOW *\fR variable \fBcurscr\fR
209which is used for certain low-level operations like clearing and redrawing a
210screen containing garbage.
211The \fBcurscr\fR can be used in only a few routines.
212.\"
213.SS Routine and Argument Names
214Many \fBcurses\fR routines have two or more versions.
215The routines prefixed with \fBw\fR require a window argument.
216The routines prefixed with \fBp\fR require a pad argument.
217Those without a prefix generally use \fBstdscr\fR.
218.PP
219The routines prefixed with \fBmv\fR require a \fIy\fR and \fIx\fR
220coordinate to move to before performing the appropriate action.
221The \fBmv\fR routines imply a call to \fBmove\fR before the call to the
222other routine.
223The coordinate \fIy\fR always refers to the row (of
224the window), and \fIx\fR always refers to the column.
225The upper left-hand corner is always (0,0), not (1,1).
226.PP
227The routines prefixed with \fBmvw\fR take both a window argument and
228\fIx\fR and \fIy\fR coordinates.
229The window argument is always specified before the coordinates.
230.PP
231In each case, \fIwin\fR is the window affected, and \fIpad\fR is the
232pad affected; \fIwin\fR and \fIpad\fR are always pointers to type
233\fBWINDOW\fR.
234.PP
235Option setting routines require a Boolean flag \fIbf\fR with the value
236\fBTRUE\fR or \fBFALSE\fR; \fIbf\fR is always of type \fBbool\fR.
237Most of the data types used in the library routines,
238such as \fBWINDOW\fR, \fBSCREEN\fR, \fBbool\fR, and \fBchtype\fR
239are defined in \fB<curses.h>\fR.
240Types used for the terminfo routines such as
241\fBTERMINAL\fR are defined in \fB<term.h>\fR.
242.PP
243This manual page describes functions which may appear in any configuration
244of the library.
245There are two common configurations of the library:
Steve Kondikae271bc2015-11-15 02:50:53 +0100246.RS 3
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530247.TP 5
Steve Kondikae271bc2015-11-15 02:50:53 +0100248.I ncurses
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530249the "normal" library, which handles 8-bit characters.
250The normal (8-bit) library stores characters combined with attributes
251in \fBchtype\fP data.
252.IP
253Attributes alone (no corresponding character) may be stored in \fBchtype\fP
254or the equivalent \fBattr_t\fP data.
255In either case, the data is stored in something like an integer.
256.IP
257Each cell (row and column) in a \fBWINDOW\fP is stored as a \fBchtype\fP.
258.TP 5
Steve Kondikae271bc2015-11-15 02:50:53 +0100259.I ncursesw
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530260the so-called "wide" library, which handles multibyte characters
Steve Kondikae271bc2015-11-15 02:50:53 +0100261(see the section on \fBALTERNATE CONFIGURATIONS\fP).
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530262The "wide" library includes all of the calls from the "normal" library.
263It adds about one third more calls using data types which store
264multibyte characters:
Steve Kondikae271bc2015-11-15 02:50:53 +0100265.RS 5
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530266.TP 5
267.B cchar_t
268corresponds to \fBchtype\fP.
269However it is a structure, because more data is stored than can fit into
270an integer.
Steve Kondikae271bc2015-11-15 02:50:53 +0100271The characters are large enough to require a full integer value \- and there
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530272may be more than one character per cell.
273The video attributes and color are stored in separate fields of the structure.
274.IP
275Each cell (row and column) in a \fBWINDOW\fP is stored as a \fBcchar_t\fP.
276.TP 5
277.B wchar_t
278stores a "wide" character.
279Like \fBchtype\fP, this may be an integer.
280.TP 5
281.B wint_t
Steve Kondikae271bc2015-11-15 02:50:53 +0100282stores a \fBwchar_t\fP or \fBWEOF\fP \- not the same, though both may have
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530283the same size.
284.RE
285.IP
286The "wide" library provides new functions which are analogous to
287functions in the "normal" library.
288There is a naming convention which relates many of the normal/wide variants:
289a "_w" is inserted into the name.
290For example, \fBwaddch\fP becomes \fBwadd_wch\fP.
291.RE
292.PP
293.\"
294.SS Routine Name Index
295The following table lists each \fBcurses\fR routine and the name of
296the manual page on which it is described.
297Routines flagged with `*'
298are ncurses-specific, not described by XPG4 or present in SVr4.
299.PP
300.TS
301center tab(/);
302l l
303l l .
304\fBcurses\fR Routine Name/Manual Page Name
305=
306COLOR_PAIR/\fBcurs_color\fR(3X)
307PAIR_NUMBER/\fBcurs_attr\fR(3X)
308_nc_free_and_exit/\fBcurs_memleaks\fR(3X)*
309_nc_freeall/\fBcurs_memleaks\fR(3X)*
310_nc_tracebits/\fBcurs_trace\fR(3X)*
311_traceattr/\fBcurs_trace\fR(3X)*
312_traceattr2/\fBcurs_trace\fR(3X)*
313_tracechar/\fBcurs_trace\fR(3X)*
314_tracechtype/\fBcurs_trace\fR(3X)*
315_tracechtype2/\fBcurs_trace\fR(3X)*
316_tracedump/\fBcurs_trace\fR(3X)*
317_tracef/\fBcurs_trace\fR(3X)*
318_tracemouse/\fBcurs_trace\fR(3X)*
319add_wch/\fBcurs_add_wch\fR(3X)
320add_wchnstr/\fBcurs_add_wchstr\fR(3X)
321add_wchstr/\fBcurs_add_wchstr\fR(3X)
322addch/\fBcurs_addch\fR(3X)
323addchnstr/\fBcurs_addchstr\fR(3X)
324addchstr/\fBcurs_addchstr\fR(3X)
325addnstr/\fBcurs_addstr\fR(3X)
326addnwstr/\fBcurs_addwstr\fR(3X)
327addstr/\fBcurs_addstr\fR(3X)
328addwstr/\fBcurs_addwstr\fR(3X)
329assume_default_colors/\fBdefault_colors\fR(3X)*
330attr_get/\fBcurs_attr\fR(3X)
331attr_off/\fBcurs_attr\fR(3X)
332attr_on/\fBcurs_attr\fR(3X)
333attr_set/\fBcurs_attr\fR(3X)
334attroff/\fBcurs_attr\fR(3X)
335attron/\fBcurs_attr\fR(3X)
336attrset/\fBcurs_attr\fR(3X)
337baudrate/\fBcurs_termattrs\fR(3X)
338beep/\fBcurs_beep\fR(3X)
339bkgd/\fBcurs_bkgd\fR(3X)
340bkgdset/\fBcurs_bkgd\fR(3X)
341bkgrnd/\fBcurs_bkgrnd\fR(3X)
342bkgrndset/\fBcurs_bkgrnd\fR(3X)
343border/\fBcurs_border\fR(3X)
344border_set/\fBcurs_border_set\fR(3X)
345box/\fBcurs_border\fR(3X)
346box_set/\fBcurs_border_set\fR(3X)
347can_change_color/\fBcurs_color\fR(3X)
348cbreak/\fBcurs_inopts\fR(3X)
349chgat/\fBcurs_attr\fR(3X)
350clear/\fBcurs_clear\fR(3X)
351clearok/\fBcurs_outopts\fR(3X)
352clrtobot/\fBcurs_clear\fR(3X)
353clrtoeol/\fBcurs_clear\fR(3X)
354color_content/\fBcurs_color\fR(3X)
355color_set/\fBcurs_attr\fR(3X)
356copywin/\fBcurs_overlay\fR(3X)
357curs_set/\fBcurs_kernel\fR(3X)
358curses_version/\fBcurs_extend\fR(3X)*
359def_prog_mode/\fBcurs_kernel\fR(3X)
360def_shell_mode/\fBcurs_kernel\fR(3X)
361define_key/\fBdefine_key\fR(3X)*
362del_curterm/\fBcurs_terminfo\fR(3X)
363delay_output/\fBcurs_util\fR(3X)
364delch/\fBcurs_delch\fR(3X)
365deleteln/\fBcurs_deleteln\fR(3X)
366delscreen/\fBcurs_initscr\fR(3X)
367delwin/\fBcurs_window\fR(3X)
368derwin/\fBcurs_window\fR(3X)
369doupdate/\fBcurs_refresh\fR(3X)
370dupwin/\fBcurs_window\fR(3X)
371echo/\fBcurs_inopts\fR(3X)
372echo_wchar/\fBcurs_add_wch\fR(3X)
373echochar/\fBcurs_addch\fR(3X)
374endwin/\fBcurs_initscr\fR(3X)
375erase/\fBcurs_clear\fR(3X)
376erasechar/\fBcurs_termattrs\fR(3X)
377erasewchar/\fBcurs_termattrs\fR(3X)
378filter/\fBcurs_util\fR(3X)
379flash/\fBcurs_beep\fR(3X)
380flushinp/\fBcurs_util\fR(3X)
381get_wch/\fBcurs_get_wch\fR(3X)
382get_wstr/\fBcurs_get_wstr\fR(3X)
383getattrs/\fBcurs_attr\fR(3X)
384getbegx/\fBcurs_legacy\fR(3X)*
385getbegy/\fBcurs_legacy\fR(3X)*
386getbegyx/\fBcurs_getyx\fR(3X)
387getbkgd/\fBcurs_bkgd\fR(3X)
388getbkgrnd/\fBcurs_bkgrnd\fR(3X)
389getcchar/\fBcurs_getcchar\fR(3X)
390getch/\fBcurs_getch\fR(3X)
391getcurx/\fBcurs_legacy\fR(3X)*
392getcury/\fBcurs_legacy\fR(3X)*
393getmaxx/\fBcurs_legacy\fR(3X)*
394getmaxy/\fBcurs_legacy\fR(3X)*
395getmaxyx/\fBcurs_getyx\fR(3X)
396getmouse/\fBcurs_mouse\fR(3X)*
397getn_wstr/\fBcurs_get_wstr\fR(3X)
398getnstr/\fBcurs_getstr\fR(3X)
399getparx/\fBcurs_legacy\fR(3X)*
400getpary/\fBcurs_legacy\fR(3X)*
401getparyx/\fBcurs_getyx\fR(3X)
402getstr/\fBcurs_getstr\fR(3X)
403getsyx/\fBcurs_kernel\fR(3X)
404getwin/\fBcurs_util\fR(3X)
405getyx/\fBcurs_getyx\fR(3X)
406halfdelay/\fBcurs_inopts\fR(3X)
407has_colors/\fBcurs_color\fR(3X)
408has_ic/\fBcurs_termattrs\fR(3X)
409has_il/\fBcurs_termattrs\fR(3X)
410has_key/\fBcurs_getch\fR(3X)*
411hline/\fBcurs_border\fR(3X)
412hline_set/\fBcurs_border_set\fR(3X)
413idcok/\fBcurs_outopts\fR(3X)
414idlok/\fBcurs_outopts\fR(3X)
415immedok/\fBcurs_outopts\fR(3X)
416in_wch/\fBcurs_in_wch\fR(3X)
417in_wchnstr/\fBcurs_in_wchstr\fR(3X)
418in_wchstr/\fBcurs_in_wchstr\fR(3X)
419inch/\fBcurs_inch\fR(3X)
420inchnstr/\fBcurs_inchstr\fR(3X)
421inchstr/\fBcurs_inchstr\fR(3X)
422init_color/\fBcurs_color\fR(3X)
423init_pair/\fBcurs_color\fR(3X)
424initscr/\fBcurs_initscr\fR(3X)
425innstr/\fBcurs_instr\fR(3X)
426innwstr/\fBcurs_inwstr\fR(3X)
427ins_nwstr/\fBcurs_ins_wstr\fR(3X)
428ins_wch/\fBcurs_ins_wch\fR(3X)
429ins_wstr/\fBcurs_ins_wstr\fR(3X)
430insch/\fBcurs_insch\fR(3X)
431insdelln/\fBcurs_deleteln\fR(3X)
432insertln/\fBcurs_deleteln\fR(3X)
433insnstr/\fBcurs_insstr\fR(3X)
434insstr/\fBcurs_insstr\fR(3X)
435instr/\fBcurs_instr\fR(3X)
436intrflush/\fBcurs_inopts\fR(3X)
437inwstr/\fBcurs_inwstr\fR(3X)
438is_cleared/\fBcurs_opaque\fR(3X)*
439is_idcok/\fBcurs_opaque\fR(3X)*
440is_idlok/\fBcurs_opaque\fR(3X)*
441is_immedok/\fBcurs_opaque\fR(3X)*
442is_keypad/\fBcurs_opaque\fR(3X)*
443is_leaveok/\fBcurs_opaque\fR(3X)*
444is_linetouched/\fBcurs_touch\fR(3X)
445is_nodelay/\fBcurs_opaque\fR(3X)*
446is_notimeout/\fBcurs_opaque\fR(3X)*
Steve Kondikae271bc2015-11-15 02:50:53 +0100447is_pad/\fBcurs_opaque\fR(3X)*
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530448is_scrollok/\fBcurs_opaque\fR(3X)*
Steve Kondikae271bc2015-11-15 02:50:53 +0100449is_subwin/\fBcurs_opaque\fR(3X)*
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530450is_syncok/\fBcurs_opaque\fR(3X)*
451is_term_resized/\fBresizeterm\fR(3X)*
452is_wintouched/\fBcurs_touch\fR(3X)
453isendwin/\fBcurs_initscr\fR(3X)
454key_defined/\fBkey_defined\fR(3X)*
455key_name/\fBcurs_util\fR(3X)
456keybound/\fBkeybound\fR(3X)*
457keyname/\fBcurs_util\fR(3X)
458keyok/\fBkeyok\fR(3X)*
459keypad/\fBcurs_inopts\fR(3X)
460killchar/\fBcurs_termattrs\fR(3X)
461killwchar/\fBcurs_termattrs\fR(3X)
462leaveok/\fBcurs_outopts\fR(3X)
463longname/\fBcurs_termattrs\fR(3X)
464mcprint/\fBcurs_print\fR(3X)*
465meta/\fBcurs_inopts\fR(3X)
466mouse_trafo/\fBcurs_mouse\fR(3X)*
467mouseinterval/\fBcurs_mouse\fR(3X)*
468mousemask/\fBcurs_mouse\fR(3X)*
469move/\fBcurs_move\fR(3X)
470mvadd_wch/\fBcurs_add_wch\fR(3X)
471mvadd_wchnstr/\fBcurs_add_wchstr\fR(3X)
472mvadd_wchstr/\fBcurs_add_wchstr\fR(3X)
473mvaddch/\fBcurs_addch\fR(3X)
474mvaddchnstr/\fBcurs_addchstr\fR(3X)
475mvaddchstr/\fBcurs_addchstr\fR(3X)
476mvaddnstr/\fBcurs_addstr\fR(3X)
477mvaddnwstr/\fBcurs_addwstr\fR(3X)
478mvaddstr/\fBcurs_addstr\fR(3X)
479mvaddwstr/\fBcurs_addwstr\fR(3X)
480mvchgat/\fBcurs_attr\fR(3X)
481mvcur/\fBcurs_terminfo\fR(3X)
482mvdelch/\fBcurs_delch\fR(3X)
483mvderwin/\fBcurs_window\fR(3X)
484mvget_wch/\fBcurs_get_wch\fR(3X)
485mvget_wstr/\fBcurs_get_wstr\fR(3X)
486mvgetch/\fBcurs_getch\fR(3X)
487mvgetn_wstr/\fBcurs_get_wstr\fR(3X)
488mvgetnstr/\fBcurs_getstr\fR(3X)
489mvgetstr/\fBcurs_getstr\fR(3X)
490mvhline/\fBcurs_border\fR(3X)
491mvhline_set/\fBcurs_border_set\fR(3X)
492mvin_wch/\fBcurs_in_wch\fR(3X)
493mvin_wchnstr/\fBcurs_in_wchstr\fR(3X)
494mvin_wchstr/\fBcurs_in_wchstr\fR(3X)
495mvinch/\fBcurs_inch\fR(3X)
496mvinchnstr/\fBcurs_inchstr\fR(3X)
497mvinchstr/\fBcurs_inchstr\fR(3X)
498mvinnstr/\fBcurs_instr\fR(3X)
499mvinnwstr/\fBcurs_inwstr\fR(3X)
500mvins_nwstr/\fBcurs_ins_wstr\fR(3X)
501mvins_wch/\fBcurs_ins_wch\fR(3X)
502mvins_wstr/\fBcurs_ins_wstr\fR(3X)
503mvinsch/\fBcurs_insch\fR(3X)
504mvinsnstr/\fBcurs_insstr\fR(3X)
505mvinsstr/\fBcurs_insstr\fR(3X)
506mvinstr/\fBcurs_instr\fR(3X)
507mvinwstr/\fBcurs_inwstr\fR(3X)
508mvprintw/\fBcurs_printw\fR(3X)
509mvscanw/\fBcurs_scanw\fR(3X)
510mvvline/\fBcurs_border\fR(3X)
511mvvline_set/\fBcurs_border_set\fR(3X)
512mvwadd_wch/\fBcurs_add_wch\fR(3X)
513mvwadd_wchnstr/\fBcurs_add_wchstr\fR(3X)
514mvwadd_wchstr/\fBcurs_add_wchstr\fR(3X)
515mvwaddch/\fBcurs_addch\fR(3X)
516mvwaddchnstr/\fBcurs_addchstr\fR(3X)
517mvwaddchstr/\fBcurs_addchstr\fR(3X)
518mvwaddnstr/\fBcurs_addstr\fR(3X)
519mvwaddnwstr/\fBcurs_addwstr\fR(3X)
520mvwaddstr/\fBcurs_addstr\fR(3X)
521mvwaddwstr/\fBcurs_addwstr\fR(3X)
522mvwchgat/\fBcurs_attr\fR(3X)
523mvwdelch/\fBcurs_delch\fR(3X)
524mvwget_wch/\fBcurs_get_wch\fR(3X)
525mvwget_wstr/\fBcurs_get_wstr\fR(3X)
526mvwgetch/\fBcurs_getch\fR(3X)
527mvwgetn_wstr/\fBcurs_get_wstr\fR(3X)
528mvwgetnstr/\fBcurs_getstr\fR(3X)
529mvwgetstr/\fBcurs_getstr\fR(3X)
530mvwhline/\fBcurs_border\fR(3X)
531mvwhline_set/\fBcurs_border_set\fR(3X)
532mvwin/\fBcurs_window\fR(3X)
533mvwin_wch/\fBcurs_in_wch\fR(3X)
534mvwin_wchnstr/\fBcurs_in_wchstr\fR(3X)
535mvwin_wchstr/\fBcurs_in_wchstr\fR(3X)
536mvwinch/\fBcurs_inch\fR(3X)
537mvwinchnstr/\fBcurs_inchstr\fR(3X)
538mvwinchstr/\fBcurs_inchstr\fR(3X)
539mvwinnstr/\fBcurs_instr\fR(3X)
540mvwinnwstr/\fBcurs_inwstr\fR(3X)
541mvwins_nwstr/\fBcurs_ins_wstr\fR(3X)
542mvwins_wch/\fBcurs_ins_wch\fR(3X)
543mvwins_wstr/\fBcurs_ins_wstr\fR(3X)
544mvwinsch/\fBcurs_insch\fR(3X)
545mvwinsnstr/\fBcurs_insstr\fR(3X)
546mvwinsstr/\fBcurs_insstr\fR(3X)
547mvwinstr/\fBcurs_instr\fR(3X)
548mvwinwstr/\fBcurs_inwstr\fR(3X)
549mvwprintw/\fBcurs_printw\fR(3X)
550mvwscanw/\fBcurs_scanw\fR(3X)
551mvwvline/\fBcurs_border\fR(3X)
552mvwvline_set/\fBcurs_border_set\fR(3X)
553napms/\fBcurs_kernel\fR(3X)
554newpad/\fBcurs_pad\fR(3X)
555newterm/\fBcurs_initscr\fR(3X)
556newwin/\fBcurs_window\fR(3X)
557nl/\fBcurs_outopts\fR(3X)
558nocbreak/\fBcurs_inopts\fR(3X)
559nodelay/\fBcurs_inopts\fR(3X)
560noecho/\fBcurs_inopts\fR(3X)
561nofilter/\fBcurs_util\fR(3X)*
562nonl/\fBcurs_outopts\fR(3X)
563noqiflush/\fBcurs_inopts\fR(3X)
564noraw/\fBcurs_inopts\fR(3X)
565notimeout/\fBcurs_inopts\fR(3X)
566overlay/\fBcurs_overlay\fR(3X)
567overwrite/\fBcurs_overlay\fR(3X)
568pair_content/\fBcurs_color\fR(3X)
569pechochar/\fBcurs_pad\fR(3X)
570pnoutrefresh/\fBcurs_pad\fR(3X)
571prefresh/\fBcurs_pad\fR(3X)
572printw/\fBcurs_printw\fR(3X)
573putp/\fBcurs_terminfo\fR(3X)
574putwin/\fBcurs_util\fR(3X)
575qiflush/\fBcurs_inopts\fR(3X)
576raw/\fBcurs_inopts\fR(3X)
577redrawwin/\fBcurs_refresh\fR(3X)
578refresh/\fBcurs_refresh\fR(3X)
579reset_prog_mode/\fBcurs_kernel\fR(3X)
580reset_shell_mode/\fBcurs_kernel\fR(3X)
581resetty/\fBcurs_kernel\fR(3X)
Steve Kondikae271bc2015-11-15 02:50:53 +0100582resize_term/\fBresizeterm\fR(3X)*
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530583resizeterm/\fBresizeterm\fR(3X)*
584restartterm/\fBcurs_terminfo\fR(3X)
585ripoffline/\fBcurs_kernel\fR(3X)
586savetty/\fBcurs_kernel\fR(3X)
587scanw/\fBcurs_scanw\fR(3X)
588scr_dump/\fBcurs_scr_dump\fR(3X)
589scr_init/\fBcurs_scr_dump\fR(3X)
590scr_restore/\fBcurs_scr_dump\fR(3X)
591scr_set/\fBcurs_scr_dump\fR(3X)
592scrl/\fBcurs_scroll\fR(3X)
593scroll/\fBcurs_scroll\fR(3X)
594scrollok/\fBcurs_outopts\fR(3X)
595set_curterm/\fBcurs_terminfo\fR(3X)
596set_term/\fBcurs_initscr\fR(3X)
597setcchar/\fBcurs_getcchar\fR(3X)
598setscrreg/\fBcurs_outopts\fR(3X)
599setsyx/\fBcurs_kernel\fR(3X)
600setterm/\fBcurs_terminfo\fR(3X)
601setupterm/\fBcurs_terminfo\fR(3X)
602slk_attr/\fBcurs_slk\fR(3X)*
603slk_attr_off/\fBcurs_slk\fR(3X)
604slk_attr_on/\fBcurs_slk\fR(3X)
605slk_attr_set/\fBcurs_slk\fR(3X)
606slk_attroff/\fBcurs_slk\fR(3X)
607slk_attron/\fBcurs_slk\fR(3X)
608slk_attrset/\fBcurs_slk\fR(3X)
609slk_clear/\fBcurs_slk\fR(3X)
610slk_color/\fBcurs_slk\fR(3X)
611slk_init/\fBcurs_slk\fR(3X)
612slk_label/\fBcurs_slk\fR(3X)
613slk_noutrefresh/\fBcurs_slk\fR(3X)
614slk_refresh/\fBcurs_slk\fR(3X)
615slk_restore/\fBcurs_slk\fR(3X)
616slk_set/\fBcurs_slk\fR(3X)
617slk_touch/\fBcurs_slk\fR(3X)
618standend/\fBcurs_attr\fR(3X)
619standout/\fBcurs_attr\fR(3X)
620start_color/\fBcurs_color\fR(3X)
621subpad/\fBcurs_pad\fR(3X)
622subwin/\fBcurs_window\fR(3X)
623syncok/\fBcurs_window\fR(3X)
624term_attrs/\fBcurs_termattrs\fR(3X)
625termattrs/\fBcurs_termattrs\fR(3X)
626termname/\fBcurs_termattrs\fR(3X)
627tgetent/\fBcurs_termcap\fR(3X)
628tgetflag/\fBcurs_termcap\fR(3X)
629tgetnum/\fBcurs_termcap\fR(3X)
630tgetstr/\fBcurs_termcap\fR(3X)
631tgoto/\fBcurs_termcap\fR(3X)
632tigetflag/\fBcurs_terminfo\fR(3X)
633tigetnum/\fBcurs_terminfo\fR(3X)
634tigetstr/\fBcurs_terminfo\fR(3X)
Steve Kondikae271bc2015-11-15 02:50:53 +0100635tiparm/\fBcurs_terminfo\fR(3X)*
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530636timeout/\fBcurs_inopts\fR(3X)
637touchline/\fBcurs_touch\fR(3X)
638touchwin/\fBcurs_touch\fR(3X)
639tparm/\fBcurs_terminfo\fR(3X)
640tputs/\fBcurs_termcap\fR(3X)
641tputs/\fBcurs_terminfo\fR(3X)
642trace/\fBcurs_trace\fR(3X)*
643typeahead/\fBcurs_inopts\fR(3X)
644unctrl/\fBcurs_util\fR(3X)
645unget_wch/\fBcurs_get_wch\fR(3X)
646ungetch/\fBcurs_getch\fR(3X)
647ungetmouse/\fBcurs_mouse\fR(3X)*
648untouchwin/\fBcurs_touch\fR(3X)
649use_default_colors/\fBdefault_colors\fR(3X)*
650use_env/\fBcurs_util\fR(3X)
651use_extended_names/\fBcurs_extend\fR(3X)*
652use_legacy_coding/\fBlegacy_coding\fR(3X)*
Steve Kondikae271bc2015-11-15 02:50:53 +0100653use_tioctl/\fBcurs_util\fR(3X)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530654vid_attr/\fBcurs_terminfo\fR(3X)
655vid_puts/\fBcurs_terminfo\fR(3X)
656vidattr/\fBcurs_terminfo\fR(3X)
657vidputs/\fBcurs_terminfo\fR(3X)
658vline/\fBcurs_border\fR(3X)
659vline_set/\fBcurs_border_set\fR(3X)
660vw_printw/\fBcurs_printw\fR(3X)
661vw_scanw/\fBcurs_scanw\fR(3X)
662vwprintw/\fBcurs_printw\fR(3X)
663vwscanw/\fBcurs_scanw\fR(3X)
664wadd_wch/\fBcurs_add_wch\fR(3X)
665wadd_wchnstr/\fBcurs_add_wchstr\fR(3X)
666wadd_wchstr/\fBcurs_add_wchstr\fR(3X)
667waddch/\fBcurs_addch\fR(3X)
668waddchnstr/\fBcurs_addchstr\fR(3X)
669waddchstr/\fBcurs_addchstr\fR(3X)
670waddnstr/\fBcurs_addstr\fR(3X)
671waddnwstr/\fBcurs_addwstr\fR(3X)
672waddstr/\fBcurs_addstr\fR(3X)
673waddwstr/\fBcurs_addwstr\fR(3X)
674wattr_get/\fBcurs_attr\fR(3X)
675wattr_off/\fBcurs_attr\fR(3X)
676wattr_on/\fBcurs_attr\fR(3X)
677wattr_set/\fBcurs_attr\fR(3X)
678wattroff/\fBcurs_attr\fR(3X)
679wattron/\fBcurs_attr\fR(3X)
680wattrset/\fBcurs_attr\fR(3X)
681wbkgd/\fBcurs_bkgd\fR(3X)
682wbkgdset/\fBcurs_bkgd\fR(3X)
683wbkgrnd/\fBcurs_bkgrnd\fR(3X)
684wbkgrndset/\fBcurs_bkgrnd\fR(3X)
685wborder/\fBcurs_border\fR(3X)
686wborder_set/\fBcurs_border_set\fR(3X)
687wchgat/\fBcurs_attr\fR(3X)
688wclear/\fBcurs_clear\fR(3X)
689wclrtobot/\fBcurs_clear\fR(3X)
690wclrtoeol/\fBcurs_clear\fR(3X)
691wcolor_set/\fBcurs_attr\fR(3X)
692wcursyncup/\fBcurs_window\fR(3X)
693wdelch/\fBcurs_delch\fR(3X)
694wdeleteln/\fBcurs_deleteln\fR(3X)
695wecho_wchar/\fBcurs_add_wch\fR(3X)
696wechochar/\fBcurs_addch\fR(3X)
697wenclose/\fBcurs_mouse\fR(3X)*
698werase/\fBcurs_clear\fR(3X)
699wget_wch/\fBcurs_get_wch\fR(3X)
700wget_wstr/\fBcurs_get_wstr\fR(3X)
701wgetbkgrnd/\fBcurs_bkgrnd\fR(3X)
702wgetch/\fBcurs_getch\fR(3X)
Steve Kondikae271bc2015-11-15 02:50:53 +0100703wgetdelay/\fBcurs_opaque\fR(3X)*
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530704wgetn_wstr/\fBcurs_get_wstr\fR(3X)
705wgetnstr/\fBcurs_getstr\fR(3X)
Steve Kondikae271bc2015-11-15 02:50:53 +0100706wgetparent/\fBcurs_opaque\fR(3X)*
707wgetscrreg/\fBcurs_opaque\fR(3X)*
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530708wgetstr/\fBcurs_getstr\fR(3X)
709whline/\fBcurs_border\fR(3X)
710whline_set/\fBcurs_border_set\fR(3X)
711win_wch/\fBcurs_in_wch\fR(3X)
712win_wchnstr/\fBcurs_in_wchstr\fR(3X)
713win_wchstr/\fBcurs_in_wchstr\fR(3X)
714winch/\fBcurs_inch\fR(3X)
715winchnstr/\fBcurs_inchstr\fR(3X)
716winchstr/\fBcurs_inchstr\fR(3X)
717winnstr/\fBcurs_instr\fR(3X)
718winnwstr/\fBcurs_inwstr\fR(3X)
719wins_nwstr/\fBcurs_ins_wstr\fR(3X)
720wins_wch/\fBcurs_ins_wch\fR(3X)
721wins_wstr/\fBcurs_ins_wstr\fR(3X)
722winsch/\fBcurs_insch\fR(3X)
723winsdelln/\fBcurs_deleteln\fR(3X)
724winsertln/\fBcurs_deleteln\fR(3X)
725winsnstr/\fBcurs_insstr\fR(3X)
726winsstr/\fBcurs_insstr\fR(3X)
727winstr/\fBcurs_instr\fR(3X)
728winwstr/\fBcurs_inwstr\fR(3X)
729wmouse_trafo/\fBcurs_mouse\fR(3X)*
730wmove/\fBcurs_move\fR(3X)
731wnoutrefresh/\fBcurs_refresh\fR(3X)
732wprintw/\fBcurs_printw\fR(3X)
733wredrawln/\fBcurs_refresh\fR(3X)
734wrefresh/\fBcurs_refresh\fR(3X)
735wresize/\fBwresize\fR(3X)*
736wscanw/\fBcurs_scanw\fR(3X)
737wscrl/\fBcurs_scroll\fR(3X)
738wsetscrreg/\fBcurs_outopts\fR(3X)
739wstandend/\fBcurs_attr\fR(3X)
740wstandout/\fBcurs_attr\fR(3X)
741wsyncdown/\fBcurs_window\fR(3X)
742wsyncup/\fBcurs_window\fR(3X)
743wtimeout/\fBcurs_inopts\fR(3X)
744wtouchln/\fBcurs_touch\fR(3X)
745wunctrl/\fBcurs_util\fR(3X)
746wvline/\fBcurs_border\fR(3X)
747wvline_set/\fBcurs_border_set\fR(3X)
748.TE
749.SH RETURN VALUE
750Routines that return an integer return \fBERR\fR upon failure and an
751integer value other than \fBERR\fR upon successful completion, unless
752otherwise noted in the routine descriptions.
753.PP
Steve Kondikae271bc2015-11-15 02:50:53 +0100754As a general rule, routines check for null pointers passed as parameters,
755and handle this as an error.
756.PP
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530757All macros return the value of the \fBw\fR version, except \fBsetscrreg\fR,
758\fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and \fBgetmaxyx\fR.
Steve Kondikae271bc2015-11-15 02:50:53 +0100759The return values of
760\fBsetscrreg\fR,
761\fBwsetscrreg\fR,
762\fBgetyx\fR,
763\fBgetbegyx\fR, and
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530764\fBgetmaxyx\fR are undefined (i.e., these should not be used as the
765right-hand side of assignment statements).
766.PP
767Routines that return pointers return \fBNULL\fR on error.
768.SH ENVIRONMENT
769The following environment symbols are useful for customizing the
770runtime behavior of the \fBncurses\fR library.
771The most important ones have been already discussed in detail.
Steve Kondikae271bc2015-11-15 02:50:53 +0100772.SS CC
773When set, change occurrences of the command_character
774(i.e., the \fBcmdch\fP capability)
775of the loaded terminfo entries to the value of this variable.
776Very few terminfo entries provide this feature.
777.PP
778Because this name is also used in development environments to represent
779the C compiler's name, \fBncurses\fR ignores it if it does not happen to
780be a single character.
781.SS BAUDRATE
782The debugging library checks this environment variable when the application
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530783has redirected output to a file.
Steve Kondikae271bc2015-11-15 02:50:53 +0100784The variable's numeric value is used for the baudrate.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530785If no value is found, \fBncurses\fR uses 9600.
786This allows testers to construct repeatable test-cases
787that take into account costs that depend on baudrate.
Steve Kondikae271bc2015-11-15 02:50:53 +0100788.SS COLUMNS
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530789Specify the width of the screen in characters.
790Applications running in a windowing environment usually are able to
791obtain the width of the window in which they are executing.
792If neither the \fBCOLUMNS\fP value nor the terminal's screen size is available,
793\fBncurses\fR uses the size which may be specified in the terminfo database
794(i.e., the \fBcols\fR capability).
Steve Kondikae271bc2015-11-15 02:50:53 +0100795.PP
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530796It is important that your application use a correct size for the screen.
797This is not always possible because your application may be
798running on a host which does not honor NAWS (Negotiations About Window
799Size), or because you are temporarily running as another user.
800However, setting \fBCOLUMNS\fP and/or \fBLINES\fP overrides the library's
801use of the screen size obtained from the operating system.
Steve Kondikae271bc2015-11-15 02:50:53 +0100802.PP
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530803Either \fBCOLUMNS\fP or \fBLINES\fP symbols may be specified independently.
804This is mainly useful to circumvent legacy misfeatures of terminal descriptions,
805e.g., xterm which commonly specifies a 65 line screen.
806For best results, \fBlines\fR and \fBcols\fR should not be specified in
807a terminal description for terminals which are run as emulations.
Steve Kondikae271bc2015-11-15 02:50:53 +0100808.PP
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530809Use the \fBuse_env\fR function to disable all use of external environment
Steve Kondikae271bc2015-11-15 02:50:53 +0100810(but not including system calls) to determine the screen size.
811Use the \fBuse_tioctl\fR function to update \fBCOLUMNS\fP or \fBLINES\fP
812to match the screen size obtained from system calls or the terminal database.
813.SS ESCDELAY
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530814Specifies the total time, in milliseconds, for which ncurses will
815await a character sequence, e.g., a function key.
816The default value, 1000 milliseconds, is enough for most uses.
817However, it is made a variable to accommodate unusual applications.
Steve Kondikae271bc2015-11-15 02:50:53 +0100818.PP
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530819The most common instance where you may wish to change this value
820is to work with slow hosts, e.g., running on a network.
821If the host cannot read characters rapidly enough, it will have the same
822effect as if the terminal did not send characters rapidly enough.
823The library will still see a timeout.
Steve Kondikae271bc2015-11-15 02:50:53 +0100824.PP
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530825Note that xterm mouse events are built up from character sequences
826received from the xterm.
827If your application makes heavy use of multiple-clicking, you may
828wish to lengthen this default value because the timeout applies
829to the composed multi-click event as well as the individual clicks.
Steve Kondikae271bc2015-11-15 02:50:53 +0100830.PP
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530831In addition to the environment variable,
832this implementation provides a global variable with the same name.
833Portable applications should not rely upon the presence of ESCDELAY
834in either form,
835but setting the environment variable rather than the global variable
836does not create problems when compiling an application.
Steve Kondikae271bc2015-11-15 02:50:53 +0100837.SS HOME
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530838Tells \fBncurses\fR where your home directory is.
839That is where it may read and write auxiliary terminal descriptions:
Steve Kondikae271bc2015-11-15 02:50:53 +0100840.PP
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530841$HOME/.termcap
842.br
843$HOME/.terminfo
Steve Kondikae271bc2015-11-15 02:50:53 +0100844.SS LINES
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530845Like COLUMNS, specify the height of the screen in characters.
846See COLUMNS for a detailed description.
Steve Kondikae271bc2015-11-15 02:50:53 +0100847.SS MOUSE_BUTTONS_123
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530848This applies only to the OS/2 EMX port.
849It specifies the order of buttons on the mouse.
850OS/2 numbers a 3-button mouse inconsistently from other
851platforms:
852.sp
8531 = left
854.br
8552 = right
856.br
8573 = middle.
858.sp
Steve Kondikae271bc2015-11-15 02:50:53 +0100859This variable lets you customize the mouse.
860The variable must be three numeric digits 1\-3 in any order, e.g., 123 or 321.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530861If it is not specified, \fBncurses\fR uses 132.
Steve Kondikae271bc2015-11-15 02:50:53 +0100862.SS NCURSES_ASSUMED_COLORS
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530863Override the compiled-in assumption that the
864terminal's default colors are white-on-black
865(see \fBdefault_colors\fR(3X)).
866You may set the foreground and background color values with this environment
867variable by proving a 2-element list: foreground,background.
868For example, to tell ncurses to not assume anything
Steve Kondikae271bc2015-11-15 02:50:53 +0100869about the colors, set this to "\-1,\-1".
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530870To make it green-on-black, set it to "2,0".
871Any positive value from zero to the terminfo \fBmax_colors\fR value is allowed.
Steve Kondikae271bc2015-11-15 02:50:53 +0100872.SS NCURSES_CONSOLE2
873This applies only to the MinGW port of ncurses.
874.PP
875The \fBConsole2\fP program's handling of the Microsoft Console API call
876\fBCreateConsoleScreenBuffer\fP is defective.
877Applications which use this will hang.
878However, it is possible to simulate the action of this call by
879mapping coordinates,
880explicitly saving and restoring the original screen contents.
881Setting the environment variable \fBNCGDB\fP has the same effect.
882.SS NCURSES_GPM_TERMS
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530883This applies only to ncurses configured to use the GPM interface.
Steve Kondikae271bc2015-11-15 02:50:53 +0100884.PP
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530885If present,
886the environment variable is a list of one or more terminal names
887against which the TERM environment variable is matched.
888Setting it to an empty value disables the GPM interface;
889using the built-in support for xterm, etc.
Steve Kondikae271bc2015-11-15 02:50:53 +0100890.PP
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530891If the environment variable is absent,
892ncurses will attempt to open GPM if TERM contains "linux".
Steve Kondikae271bc2015-11-15 02:50:53 +0100893.SS NCURSES_NO_HARD_TABS
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530894\fBNcurses\fP may use tabs as part of the cursor movement optimization.
895In some cases,
896your terminal driver may not handle these properly.
897Set this environment variable to disable the feature.
898You can also adjust your \fBstty\fP settings to avoid the problem.
Steve Kondikae271bc2015-11-15 02:50:53 +0100899NCURSES_NO_MAGIC_COOKIE
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530900Some terminals use a magic-cookie feature which requires special handling
901to make highlighting and other video attributes display properly.
902You can suppress the highlighting entirely for these terminals by
903setting this environment variable.
Steve Kondikae271bc2015-11-15 02:50:53 +0100904.SS NCURSES_NO_PADDING
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530905Most of the terminal descriptions in the terminfo database are written
906for real "hardware" terminals.
907Many people use terminal emulators
908which run in a windowing environment and use curses-based applications.
909Terminal emulators can duplicate
910all of the important aspects of a hardware terminal, but they do not
911have the same limitations.
912The chief limitation of a hardware terminal from the standpoint
913of your application is the management of dataflow, i.e., timing.
914Unless a hardware terminal is interfaced into a terminal concentrator
915(which does flow control),
916it (or your application) must manage dataflow, preventing overruns.
917The cheapest solution (no hardware cost)
918is for your program to do this by pausing after
919operations that the terminal does slowly, such as clearing the display.
Steve Kondikae271bc2015-11-15 02:50:53 +0100920.PP
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530921As a result, many terminal descriptions (including the vt100)
922have delay times embedded.
923You may wish to use these descriptions,
924but not want to pay the performance penalty.
Steve Kondikae271bc2015-11-15 02:50:53 +0100925.PP
926Set the NCURSES_NO_PADDING environment variable to disable all but mandatory
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530927padding.
928Mandatory padding is used as a part of special control
929sequences such as \fIflash\fR.
Steve Kondikae271bc2015-11-15 02:50:53 +0100930.SS NCURSES_NO_SETBUF
931This setting is obsolete.
932Before changes
933.RS 3
934.bP
935started with 5.9 patch 20120825
936and
937.bP
938continued
939though 5.9 patch 20130126
940.RE
941.PP
942\fBncurses\fR enabled buffered output during terminal initialization.
943This was done (as in SVr4 curses) for performance reasons.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530944For testing purposes, both of \fBncurses\fR and certain applications,
Steve Kondikae271bc2015-11-15 02:50:53 +0100945this feature was made optional.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530946Setting the NCURSES_NO_SETBUF variable
Steve Kondikae271bc2015-11-15 02:50:53 +0100947disabled output buffering, leaving the output in the original (usually
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530948line buffered) mode.
Steve Kondikae271bc2015-11-15 02:50:53 +0100949.PP
950In the current implementation,
951ncurses performs its own buffering and does not require this workaround.
952It does not modify the buffering of the standard output.
953.PP
954The reason for the change was to make the behavior for interrupts and
955other signals more robust.
956One drawback is that certain nonconventional programs would mix
957ordinary stdio calls with ncurses calls and (usually) work.
958This is no longer possible since ncurses is not using
959the buffered standard output but its own output (to the same file descriptor).
960As a special case, the low-level calls such as \fBputp\fP still use the
961standard output.
962But high-level curses calls do not.
963.SS NCURSES_NO_UTF8_ACS
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530964During initialization, the \fBncurses\fR library
965checks for special cases where VT100 line-drawing (and the corresponding
966alternate character set capabilities) described in the terminfo are known
967to be missing.
Steve Kondikae271bc2015-11-15 02:50:53 +0100968Specifically, when running in a UTF\-8 locale,
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530969the Linux console emulator and the GNU screen program ignore these.
970Ncurses checks the TERM environment variable for these.
971For other special cases, you should set this environment variable.
972Doing this tells ncurses to use Unicode values which correspond to
973the VT100 line-drawing glyphs.
974That works for the special cases cited,
975and is likely to work for terminal emulators.
Steve Kondikae271bc2015-11-15 02:50:53 +0100976.PP
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530977When setting this variable, you should set it to a nonzero value.
978Setting it to zero (or to a nonnumber)
Steve Kondikae271bc2015-11-15 02:50:53 +0100979disables the special check for "linux" and "screen".
980.PP
981As an alternative to the environment variable,
982ncurses checks for an extended terminfo capability \fBU8\fP.
983This is a numeric capability which can be compiled using \fB@TIC@\ \-x\fP.
984For example
985.RS 3
986.ft CW
987.sp
988.nf
989# linux console, if patched to provide working
990# VT100 shift-in/shift-out, with corresponding font.
991linux-vt100|linux console with VT100 line-graphics,
992 U8#0, use=linux,
993.sp
994# uxterm with vt100Graphics resource set to false
995xterm-utf8|xterm relying on UTF-8 line-graphics,
996 U8#1, use=xterm,
997.fi
998.ft
999.RE
1000.PP
1001The name "U8" is chosen to be two characters,
1002to permit it to be used by applications that use ncurses'
1003termcap interface.
1004.SS NCURSES_TRACE
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301005During initialization, the \fBncurses\fR debugging library
Steve Kondikae271bc2015-11-15 02:50:53 +01001006checks the NCURSES_TRACE environment variable.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301007If it is defined, to a numeric value, \fBncurses\fR calls the \fBtrace\fR
1008function, using that value as the argument.
Steve Kondikae271bc2015-11-15 02:50:53 +01001009.PP
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301010The argument values, which are defined in \fBcurses.h\fR, provide several
1011types of information.
1012When running with traces enabled, your application will write the
1013file \fBtrace\fR to the current directory.
Steve Kondikae271bc2015-11-15 02:50:53 +01001014.PP
1015See \fBcurs_trace\fP(3X) for more information.
1016.SS TERM
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301017Denotes your terminal type.
1018Each terminal type is distinct, though many are similar.
Steve Kondikae271bc2015-11-15 02:50:53 +01001019.PP
1020\fBTERM\fP is commonly set by terminal emulators to help
1021applications find a workable terminal description.
1022Some of those choose a popular approximation, e.g.,
1023\*(``ansi\*('', \*(``vt100\*('', \*(``xterm\*('' rather than an exact fit.
1024Not infrequently, your application will have problems with that approach,
1025e.g., incorrect function-key definitions.
1026.PP
1027If you set \fBTERM\fP in your environment,
1028it has no effect on the operation of the terminal emulator.
1029It only affects the way applications work within the terminal.
1030Likewise, as a general rule (\fBxterm\fP being a rare exception),
1031terminal emulators which allow you to
1032specify \fBTERM\fP as a parameter or configuration value do
1033not change their behavior to match that setting.
1034.SS TERMCAP
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301035If the \fBncurses\fR library has been configured with \fItermcap\fR
1036support, \fBncurses\fR will check for a terminal's description in
1037termcap form if it is not available in the terminfo database.
Steve Kondikae271bc2015-11-15 02:50:53 +01001038.PP
1039The TERMCAP environment variable contains either a terminal description (with
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301040newlines stripped out),
Steve Kondikae271bc2015-11-15 02:50:53 +01001041or a file name telling where the information denoted by
1042the TERM environment variable exists.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301043In either case, setting it directs \fBncurses\fR to ignore
1044the usual place for this information, e.g., /etc/termcap.
Steve Kondikae271bc2015-11-15 02:50:53 +01001045.SS TERMINFO
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301046Overrides the directory in which \fBncurses\fR searches for your terminal
1047description.
1048This is the simplest, but not the only way to change the list of directories.
1049The complete list of directories in order follows:
Steve Kondikae271bc2015-11-15 02:50:53 +01001050.RS 3
1051.bP
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301052the last directory to which \fBncurses\fR wrote, if any, is searched first
Steve Kondikae271bc2015-11-15 02:50:53 +01001053.bP
1054the directory specified by the TERMINFO environment variable
1055.bP
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301056$HOME/.terminfo
Steve Kondikae271bc2015-11-15 02:50:53 +01001057.bP
1058directories listed in the TERMINFO_DIRS environment variable
1059.bP
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301060one or more directories whose names are configured and compiled into the
Steve Kondikae271bc2015-11-15 02:50:53 +01001061ncurses library, i.e.,
1062.RS 3
1063.bP
1064@TERMINFO_DIRS@ (corresponding to the TERMINFO_DIRS variable)
1065.bP
1066@TERMINFO@ (corresponding to the TERMINFO variable)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301067.RE
Steve Kondikae271bc2015-11-15 02:50:53 +01001068.RE
1069.SS TERMINFO_DIRS
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301070Specifies a list of directories to search for terminal descriptions.
1071The list is separated by colons (i.e., ":") on Unix, semicolons on OS/2 EMX.
Steve Kondikae271bc2015-11-15 02:50:53 +01001072.PP
1073All of the terminal descriptions are in terminfo form.
1074Normally these are stored in a directory tree,
1075using subdirectories named by the first letter of the terminal names therein.
1076.PP
1077If \fBncurses\fP is built with a hashed database,
1078then each entry in this list can also be the path of the corresponding
1079database file.
1080.PP
1081If \fBncurses\fP is built with a support for reading termcap files
1082directly, then an entry in this list may be the path of a termcap file.
1083.SS TERMPATH
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301084If TERMCAP does not hold a file name then \fBncurses\fR checks
Steve Kondikae271bc2015-11-15 02:50:53 +01001085the TERMPATH environment variable.
1086This is a list of filenames separated by spaces or colons (i.e., ":") on Unix,
1087semicolons on OS/2 EMX.
1088.PP
1089If the TERMPATH environment variable is not set,
1090\fBncurses\fR looks in the files
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301091/etc/termcap, /usr/share/misc/termcap and $HOME/.termcap, in that order.
1092.PP
1093The library may be configured to disregard the following variables when the
1094current user is the superuser (root), or if the application uses setuid or
1095setgid permissions:
Steve Kondikae271bc2015-11-15 02:50:53 +01001096.PP
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301097$TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as $HOME.
1098.SH ALTERNATE CONFIGURATIONS
1099Several different configurations are possible,
1100depending on the configure script options used when building \fBncurses\fP.
1101There are a few main options whose effects are visible to the applications
1102developer using \fBncurses\fP:
1103.TP 5
Steve Kondikae271bc2015-11-15 02:50:53 +01001104\-\-disable\-overwrite
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301105The standard include for \fBncurses\fP is as noted in \fBSYNOPSIS\fP:
Steve Kondikae271bc2015-11-15 02:50:53 +01001106.RS 3
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301107.sp
1108\fB#include <curses.h>\fR
1109.RE
1110.IP
1111This option is used to avoid filename conflicts when \fBncurses\fP
1112is not the main implementation of curses of the computer.
1113If \fBncurses\fP is installed disabling overwrite, it puts its headers in
1114a subdirectory, e.g.,
Steve Kondikae271bc2015-11-15 02:50:53 +01001115.RS 3
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301116.sp
1117\fB#include <ncurses/curses.h>\fR
1118.RE
1119.IP
Steve Kondikae271bc2015-11-15 02:50:53 +01001120It also omits a symbolic link which would allow you to use \fB\-lcurses\fP
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301121to build executables.
1122.TP 5
Steve Kondikae271bc2015-11-15 02:50:53 +01001123\-\-enable\-widec
1124The configure script renames the library and
1125(if the \fB\-\-disable\-overwrite\fP option is used)
1126puts the header files in a different subdirectory.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301127All of the library names have a "w" appended to them,
1128i.e., instead of
Steve Kondikae271bc2015-11-15 02:50:53 +01001129.RS 3
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301130.sp
Steve Kondikae271bc2015-11-15 02:50:53 +01001131\fB\-lncurses\fR
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301132.RE
1133.IP
1134you link with
Steve Kondikae271bc2015-11-15 02:50:53 +01001135.RS 3
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301136.sp
Steve Kondikae271bc2015-11-15 02:50:53 +01001137\fB\-lncursesw\fR
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301138.RE
1139.IP
1140You must also define \fB_XOPEN_SOURCE_EXTENDED\fP when compiling for the
1141wide-character library to use the extended (wide-character) functions.
1142The \fBcurses.h\fP file which is installed for the wide-character
1143library is designed to be compatible with the normal library's header.
1144Only the size of the \fBWINDOW\fP structure differs, and very few
1145applications require more than a pointer to \fBWINDOW\fPs.
1146If the headers are installed allowing overwrite,
1147the wide-character library's headers should be installed last,
1148to allow applications to be built using either library
1149from the same set of headers.
1150.TP 5
Steve Kondikae271bc2015-11-15 02:50:53 +01001151\-\-with\-pthread
1152The configure script renames the library.
1153All of the library names have a "t" appended to them
1154(before any "w" added by \fB\-\-enable\-widec\fP).
1155.IP
1156The global variables such as \fBLINES\fP are replaced by macros to
1157allow read-only access.
1158At the same time, setter-functions are provided to set these values.
1159Some applications (very few) may require changes to work with this convention.
1160.TP 5
1161\-\-with\-shared
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301162.TP
Steve Kondikae271bc2015-11-15 02:50:53 +01001163\-\-with\-normal
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301164.TP
Steve Kondikae271bc2015-11-15 02:50:53 +01001165\-\-with\-debug
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301166.TP
Steve Kondikae271bc2015-11-15 02:50:53 +01001167\-\-with\-profile
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301168The shared and normal (static) library names differ by their suffixes,
1169e.g., \fBlibncurses.so\fP and \fBlibncurses.a\fP.
1170The debug and profiling libraries add a "_g" and a "_p" to the root
1171names respectively,
1172e.g., \fBlibncurses_g.a\fP and \fBlibncurses_p.a\fP.
1173.TP 5
Steve Kondikae271bc2015-11-15 02:50:53 +01001174\-\-with\-trace
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301175The \fBtrace\fP function normally resides in the debug library,
1176but it is sometimes useful to configure this in the shared library.
1177Configure scripts should check for the function's existence rather
1178than assuming it is always in the debug library.
1179.SH FILES
1180.TP 5
1181@DATADIR@/tabset
1182directory containing initialization files for the terminal capability database
1183@TERMINFO@
1184terminal capability database
1185.SH SEE ALSO
Steve Kondikae271bc2015-11-15 02:50:53 +01001186\fBterminfo\fR(\*n) and related pages whose names begin
1187"curs_" for detailed routine descriptions.
1188.br
1189\fBcurs_variables\fR(3X)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301190.SH EXTENSIONS
Steve Kondikae271bc2015-11-15 02:50:53 +01001191The \fBncurses\fR library can be compiled with an option (\fB\-DUSE_GETCAP\fR)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301192that falls back to the old-style /etc/termcap file if the terminal setup code
1193cannot find a terminfo entry corresponding to \fBTERM\fR.
1194Use of this feature
1195is not recommended, as it essentially includes an entire termcap compiler in
1196the \fBncurses\fR startup code, at significant cost in core and startup cycles.
1197.PP
1198The \fBncurses\fR library includes facilities for capturing mouse events on
1199certain terminals (including xterm).
1200See the \fBcurs_mouse\fR(3X)
1201manual page for details.
1202.PP
1203The \fBncurses\fR library includes facilities for responding to window
1204resizing events, e.g., when running in an xterm.
1205See the \fBresizeterm\fR(3X)
1206and \fBwresize\fR(3X) manual pages for details.
1207In addition, the library may be configured with a SIGWINCH handler.
1208.PP
1209The \fBncurses\fR library extends the fixed set of function key capabilities
1210of terminals by allowing the application designer to define additional
1211key sequences at runtime.
1212See the \fBdefine_key\fR(3X)
1213\fBkey_defined\fR(3X),
1214and \fBkeyok\fR(3X) manual pages for details.
1215.PP
1216The \fBncurses\fR library can exploit the capabilities of terminals which
Steve Kondikae271bc2015-11-15 02:50:53 +01001217implement the ISO\-6429 SGR 39 and SGR 49 controls, which allow an application
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301218to reset the terminal to its original foreground and background colors.
1219From the users' perspective, the application is able to draw colored
1220text on a background whose color is set independently, providing better
1221control over color contrasts.
1222See the \fBdefault_colors\fR(3X) manual page for details.
1223.PP
1224The \fBncurses\fR library includes a function for directing application output
1225to a printer attached to the terminal device.
1226See the \fBcurs_print\fR(3X) manual page for details.
1227.SH PORTABILITY
1228The \fBncurses\fR library is intended to be BASE-level conformant with XSI
1229Curses.
1230The EXTENDED XSI Curses functionality
1231(including color support) is supported.
1232.PP
1233A small number of local differences (that is, individual differences between
1234the XSI Curses and \fBncurses\fR calls) are described in \fBPORTABILITY\fR
1235sections of the library man pages.
1236.PP
Steve Kondikae271bc2015-11-15 02:50:53 +01001237Unlike other implementations, this one checks parameters such as pointers
1238to WINDOW structures to ensure they are not null.
1239The main reason for providing this behavior is to guard against programmer
1240error.
1241The standard interface does not provide a way for the library
1242to tell an application which of several possible errors were detected.
1243Relying on this (or some other) extension will adversely affect the
1244portability of curses applications.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301245.PP
Steve Kondikae271bc2015-11-15 02:50:53 +01001246This implementation also contains several extensions:
1247.bP
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301248The routine \fBhas_key\fR is not part of XPG4, nor is it present in SVr4.
1249See the \fBcurs_getch\fR(3X) manual page for details.
Steve Kondikae271bc2015-11-15 02:50:53 +01001250.bP
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301251The routine \fBslk_attr\fR is not part of XPG4, nor is it present in SVr4.
1252See the \fBcurs_slk\fR(3X) manual page for details.
Steve Kondikae271bc2015-11-15 02:50:53 +01001253.bP
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301254The routines \fBgetmouse\fR, \fBmousemask\fR, \fBungetmouse\fR,
1255\fBmouseinterval\fR, and \fBwenclose\fR relating to mouse interfacing are not
1256part of XPG4, nor are they present in SVr4.
1257See the \fBcurs_mouse\fR(3X) manual page for details.
Steve Kondikae271bc2015-11-15 02:50:53 +01001258.bP
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301259The routine \fBmcprint\fR was not present in any previous curses implementation.
1260See the \fBcurs_print\fR(3X) manual page for details.
Steve Kondikae271bc2015-11-15 02:50:53 +01001261.bP
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301262The routine \fBwresize\fR is not part of XPG4, nor is it present in SVr4.
1263See the \fBwresize\fR(3X) manual page for details.
Steve Kondikae271bc2015-11-15 02:50:53 +01001264.bP
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301265The WINDOW structure's internal details can be hidden from application
1266programs.
1267See \fBcurs_opaque\fR(3X) for the discussion of \fBis_scrollok\fR, etc.
Steve Kondikae271bc2015-11-15 02:50:53 +01001268.bP
1269This implementation can be configured to provide rudimentary support
1270for multi-threaded applications.
1271See \fBcurs_threads\fR(3X) for details.
1272.bP
1273This implementation can also be configured to provide a set of functions which
1274improve the ability to manage multiple screens.
1275See \fBcurs_sp_funcs\fR(3X) for details.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301276.PP
1277In historic curses versions, delays embedded in the capabilities \fBcr\fR,
1278\fBind\fR, \fBcub1\fR, \fBff\fR and \fBtab\fR activated corresponding delay
1279bits in the UNIX tty driver.
1280In this implementation, all padding is done by sending NUL bytes.
1281This method is slightly more expensive, but narrows the interface
1282to the UNIX kernel significantly and increases the package's portability
1283correspondingly.
1284.SH NOTES
1285The header file \fB<curses.h>\fR automatically includes the header files
1286\fB<stdio.h>\fR and \fB<unctrl.h>\fR.
1287.PP
1288If standard output from a \fBncurses\fR program is re-directed to something
1289which is not a tty, screen updates will be directed to standard error.
1290This was an undocumented feature of AT&T System V Release 3 curses.
1291.SH AUTHORS
1292Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
1293Based on pcurses by Pavel Curtis.