ncurses 5.4
[ncurses.git] / man / ncurses.3x
1 '\" t
2 .\"***************************************************************************
3 .\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
4 .\"                                                                          *
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 .\"
30 .\" $Id: ncurses.3x,v 1.70 2004/01/11 01:45:54 tom Exp $
31 .hy 0
32 .TH ncurses 3X ""
33 .ds n 5
34 .ds d @TERMINFO@
35 .SH NAME
36 \fBncurses\fR - CRT screen handling and optimization package
37 .SH SYNOPSIS
38 \fB#include <curses.h>\fR
39 .br
40 .SH DESCRIPTION
41 The \fBncurses\fR library routines give the user a terminal-independent method
42 of updating character screens with reasonable optimization.  This
43 implementation is ``new curses'' (ncurses) and is the approved replacement for
44 4.4BSD classic curses, which has been discontinued.
45 .PP
46 The \fBncurses\fR routines emulate the \fBcurses\fR(3X) library of System V
47 Release 4 UNIX, and the XPG4 curses standard (XSI curses) but the \fBncurses\fR
48 library is freely redistributable in source form.  Differences from the SVr4
49 curses are summarized under the EXTENSIONS and BUGS sections below and
50 described in detail in the EXTENSIONS and BUGS sections of individual man
51 pages.
52 .PP
53 A program using these routines must be linked with the \fB-lncurses\fR option,
54 or (if it has been generated) with the debugging library \fB-lncurses_g\fR.
55 (Your system integrator may also have installed these libraries under
56 the names \fB-lcurses\fR and \fB-lcurses_g\fR.)
57 The ncurses_g library generates trace logs (in a file called 'trace' in the
58 current directory) that describe curses actions.
59 .PP
60 The \fBncurses\fR package supports: overall screen, window and pad
61 manipulation; output to windows and pads; reading terminal input; control over
62 terminal and \fBcurses\fR input and output options; environment query
63 routines; color manipulation; use of soft label keys; terminfo capabilities;
64 and access to low-level terminal-manipulation routines.
65 .PP
66 To initialize the routines, the routine \fBinitscr\fR or \fBnewterm\fR
67 must be called before any of the other routines that deal with windows
68 and screens are used.  The routine \fBendwin\fR must be called before
69 exiting.  To get character-at-a-time input without echoing (most
70 interactive, screen oriented programs want this), the following
71 sequence should be used:
72 .sp
73       \fBinitscr(); cbreak(); noecho();\fR
74 .sp
75 Most programs would additionally use the sequence:
76 .sp
77       \fBnonl();\fR
78       \fBintrflush(stdscr, FALSE);\fR
79       \fBkeypad(stdscr, TRUE);\fR
80 .sp
81 Before a \fBcurses\fR program is run, the tab stops of the terminal
82 should be set and its initialization strings, if defined, must be
83 output.  This can be done by executing the \fBtput init\fR command
84 after the shell environment variable \fBTERM\fR has been exported.
85 \fBtset(1)\fR is usually responsible for doing this.
86 [See \fBterminfo\fR(\*n) for further details.]
87 .PP
88 The \fBncurses\fR library permits manipulation of data structures,
89 called \fIwindows\fR, which can be thought of as two-dimensional
90 arrays of characters representing all or part of a CRT screen.  A
91 default window called \fBstdscr\fR, which is the size of the terminal
92 screen, is supplied.  Others may be created with \fBnewwin\fR.
93 .PP
94 Note that \fBcurses\fR does not handle overlapping windows, that's done by
95 the \fBpanel\fR(3X) library. This means that you can either use
96 \fBstdscr\fR or divide the screen into tiled windows and not using
97 \fBstdscr\fR at all. Mixing the two will result in unpredictable, and
98 undesired, effects.
99 .PP
100 Windows are referred to by variables declared as \fBWINDOW *\fR.
101 These data structures are manipulated with routines described here and
102 elsewhere in the \fBncurses\fR manual pages.  Among which the most basic
103 routines are \fBmove\fR and \fBaddch\fR.  More general versions of
104 these routines are included with names beginning with \fBw\fR,
105 allowing the user to specify a window.  The routines not beginning
106 with \fBw\fR affect \fBstdscr\fR.)
107 .PP
108 After using routines to manipulate a window, \fBrefresh\fR is called,
109 telling \fBcurses\fR to make the user's CRT screen look like
110 \fBstdscr\fR.  The characters in a window are actually of type
111 \fBchtype\fR, (character and attribute data) so that other information
112 about the character may also be stored with each character.
113 .PP
114 Special windows called \fIpads\fR may also be manipulated.  These are windows
115 which are not constrained to the size of the screen and whose contents need not
116 be completely displayed.  See \fBcurs_pad\fR(3X) for more information.
117 .PP
118 In addition to drawing characters on the screen, video attributes and colors
119 may be supported, causing the characters to show up in such modes as
120 underlined, in reverse video, or in color on terminals that support such
121 display enhancements.  Line drawing characters may be specified to be output.
122 On input, \fBcurses\fR is also able to translate arrow and function keys that
123 transmit escape sequences into single values.  The video attributes, line
124 drawing characters, and input values use names, defined in \fB<curses.h>\fR,
125 such as \fBA_REVERSE\fR, \fBACS_HLINE\fR, and \fBKEY_LEFT\fR.
126 .PP
127 If the environment variables \fBLINES\fR and \fBCOLUMNS\fR are set, or if the
128 program is executing in a window environment, line and column information in
129 the environment will override information read by \fIterminfo\fR.  This would
130 effect a program running in an AT&T 630 layer, for example, where the size of a
131 screen is changeable (see \fBENVIRONMENT\fR).
132 .PP
133 If the environment variable \fBTERMINFO\fR is defined, any program using
134 \fBcurses\fR checks for a local terminal definition before checking in the
135 standard place.  For example, if \fBTERM\fR is set to \fBatt4424\fR, then the
136 compiled terminal definition is found in
137 .sp
138       \fB\*d/a/att4424\fR.
139 .sp
140 (The \fBa\fR is copied from the first letter of \fBatt4424\fR to avoid
141 creation of huge directories.)  However, if \fBTERMINFO\fR is set to
142 \fB$HOME/myterms\fR, \fBcurses\fR first checks
143 .sp
144       \fB$HOME/myterms/a/att4424\fR,
145 .sp
146 and if that fails, it then checks
147 .sp
148       \fB\*d/a/att4424\fR.
149 .sp
150 This is useful for developing experimental definitions or when write
151 permission in \fB\*d\fR is not available.
152 .PP
153 The integer variables \fBLINES\fR and \fBCOLS\fR are defined in
154 \fB<curses.h>\fR and will be filled in by \fBinitscr\fR with the size of the
155 screen.  The constants \fBTRUE\fR and \fBFALSE\fR have the values \fB1\fR and
156 \fB0\fR, respectively.
157 .PP
158 The \fBcurses\fR routines also define the \fBWINDOW *\fR variable \fBcurscr\fR
159 which is used for certain low-level operations like clearing and redrawing a
160 screen containing garbage.  The \fBcurscr\fR can be used in only a few
161 routines.
162 .
163 .SS Routine and Argument Names
164 Many \fBcurses\fR routines have two or more versions.  The routines prefixed
165 with \fBw\fR require a window argument.  The routines prefixed with \fBp\fR
166 require a pad argument.  Those without a prefix generally use \fBstdscr\fR.
167 .PP
168 The routines prefixed with \fBmv\fR require a \fIy\fR and \fIx\fR
169 coordinate to move to before performing the appropriate action.  The
170 \fBmv\fR routines imply a call to \fBmove\fR before the call to the
171 other routine.  The coordinate \fIy\fR always refers to the row (of
172 the window), and \fIx\fR always refers to the column.  The upper
173 left-hand corner is always (0,0), not (1,1).
174 .PP
175 The routines prefixed with \fBmvw\fR take both a window argument and
176 \fIx\fR and \fIy\fR coordinates.  The window argument is always
177 specified before the coordinates.
178 .PP
179 In each case, \fIwin\fR is the window affected, and \fIpad\fR is the
180 pad affected; \fIwin\fR and \fIpad\fR are always pointers to type
181 \fBWINDOW\fR.
182 .PP
183 Option setting routines require a Boolean flag \fIbf\fR with the value
184 \fBTRUE\fR or \fBFALSE\fR; \fIbf\fR is always of type \fBbool\fR.  The
185 variables \fIch\fR and \fIattrs\fR below are always of type
186 \fBchtype\fR.  The types \fBWINDOW\fR, \fBSCREEN\fR, \fBbool\fR, and
187 \fBchtype\fR are defined in \fB<curses.h>\fR.  The type \fBTERMINAL\fR
188 is defined in \fB<term.h>\fR.  All other arguments are integers.
189 .SS Routine Name Index
190 The following table lists each \fBcurses\fR routine and the name of
191 the manual page on which it is described.  Routines flagged with `*'
192 are ncurses-specific, not described by XPG4 or present in SVr4.
193 .PP
194 .TS
195 center tab(/);
196 l l
197 l l .
198 \fBcurses\fR Routine Name/Manual Page Name
199 =
200 COLOR_PAIR/\fBcurs_color\fR(3X)
201 PAIR_NUMBER/\fBcurs_attr\fR(3X)
202 _nc_tracebits/\fBcurs_trace\fR(3X)*
203 _traceattr/\fBcurs_trace\fR(3X)*
204 _traceattr2/\fBcurs_trace\fR(3X)*
205 _tracechar/\fBcurs_trace\fR(3X)*
206 _tracechtype/\fBcurs_trace\fR(3X)*
207 _tracechtype2/\fBcurs_trace\fR(3X)*
208 _tracedump/\fBcurs_trace\fR(3X)*
209 _tracef/\fBcurs_trace\fR(3X)*
210 _tracemouse/\fBcurs_trace\fR(3X)*
211 add_wch/\fBcurs_add_wch\fR(3X)
212 add_wchnstr/\fBcurs_add_wchstr\fR(3X)
213 add_wchstr/\fBcurs_add_wchstr\fR(3X)
214 addch/\fBcurs_addch\fR(3X)
215 addchnstr/\fBcurs_addchstr\fR(3X)
216 addchstr/\fBcurs_addchstr\fR(3X)
217 addnstr/\fBcurs_addstr\fR(3X)
218 addnwstr/\fBcurs_addwstr\fR(3X)
219 addstr/\fBcurs_addstr\fR(3X)
220 addwstr/\fBcurs_addwstr\fR(3X)
221 assume_default_colors/\fBdefault_colors\fR(3X)*
222 attr_get/\fBcurs_attr\fR(3X)
223 attr_off/\fBcurs_attr\fR(3X)
224 attr_on/\fBcurs_attr\fR(3X)
225 attr_set/\fBcurs_attr\fR(3X)
226 attroff/\fBcurs_attr\fR(3X)
227 attron/\fBcurs_attr\fR(3X)
228 attrset/\fBcurs_attr\fR(3X)
229 baudrate/\fBcurs_termattrs\fR(3X)
230 beep/\fBcurs_beep\fR(3X)
231 bkgd/\fBcurs_bkgd\fR(3X)
232 bkgdset/\fBcurs_bkgd\fR(3X)
233 bkgrnd/\fBcurs_bkgrnd\fR(3X)
234 bkgrndset/\fBcurs_bkgrnd\fR(3X)
235 border/\fBcurs_border\fR(3X)
236 border_set/\fBcurs_border_set\fR(3X)
237 box/\fBcurs_border\fR(3X)
238 box_set/\fBcurs_border_set\fR(3X)
239 can_change_color/\fBcurs_color\fR(3X)
240 cbreak/\fBcurs_inopts\fR(3X)
241 chgat/\fBcurs_attr\fR(3X)
242 clear/\fBcurs_clear\fR(3X)
243 clearok/\fBcurs_outopts\fR(3X)
244 clrtobot/\fBcurs_clear\fR(3X)
245 clrtoeol/\fBcurs_clear\fR(3X)
246 color_content/\fBcurs_color\fR(3X)
247 color_set/\fBcurs_attr\fR(3X)
248 copywin/\fBcurs_overlay\fR(3X)
249 curs_set/\fBcurs_kernel\fR(3X)
250 curses_version/\fBcurs_extend\fR(3X)*
251 def_prog_mode/\fBcurs_kernel\fR(3X)
252 def_shell_mode/\fBcurs_kernel\fR(3X)
253 define_key/\fBdefine_key\fR(3X)*
254 del_curterm/\fBcurs_terminfo\fR(3X)
255 delay_output/\fBcurs_util\fR(3X)
256 delch/\fBcurs_delch\fR(3X)
257 deleteln/\fBcurs_deleteln\fR(3X)
258 delscreen/\fBcurs_initscr\fR(3X)
259 delwin/\fBcurs_window\fR(3X)
260 derwin/\fBcurs_window\fR(3X)
261 doupdate/\fBcurs_refresh\fR(3X)
262 dupwin/\fBcurs_window\fR(3X)
263 echo/\fBcurs_inopts\fR(3X)
264 echo_wchar/\fBcurs_add_wch\fR(3X)
265 echochar/\fBcurs_addch\fR(3X)
266 endwin/\fBcurs_initscr\fR(3X)
267 erase/\fBcurs_clear\fR(3X)
268 erasechar/\fBcurs_termattrs\fR(3X)
269 erasewchar/\fBcurs_termattrs\fR(3X)
270 filter/\fBcurs_util\fR(3X)
271 flash/\fBcurs_beep\fR(3X)
272 flushinp/\fBcurs_util\fR(3X)
273 get_wch/\fBcurs_get_wch\fR(3X)
274 get_wstr/\fBcurs_get_wstr\fR(3X)
275 getbegyx/\fBcurs_getyx\fR(3X)
276 getbkgd/\fBcurs_bkgd\fR(3X)
277 getbkgrnd/\fBcurs_bkgrnd\fR(3X)
278 getcchar/\fBcurs_getcchar\fR(3X)
279 getch/\fBcurs_getch\fR(3X)
280 getmaxyx/\fBcurs_getyx\fR(3X)
281 getmouse/\fBcurs_mouse\fR(3X)*
282 getn_wstr/\fBcurs_get_wstr\fR(3X)
283 getnstr/\fBcurs_getstr\fR(3X)
284 getparyx/\fBcurs_getyx\fR(3X)
285 getstr/\fBcurs_getstr\fR(3X)
286 getsyx/\fBcurs_kernel\fR(3X)
287 getwin/\fBcurs_util\fR(3X)
288 getyx/\fBcurs_getyx\fR(3X)
289 halfdelay/\fBcurs_inopts\fR(3X)
290 has_colors/\fBcurs_color\fR(3X)
291 has_ic/\fBcurs_termattrs\fR(3X)
292 has_il/\fBcurs_termattrs\fR(3X)
293 has_key/\fBcurs_getch\fR(3X)*
294 hline/\fBcurs_border\fR(3X)
295 hline_set/\fBcurs_border_set\fR(3X)
296 idcok/\fBcurs_outopts\fR(3X)
297 idlok/\fBcurs_outopts\fR(3X)
298 immedok/\fBcurs_outopts\fR(3X)
299 in_wch/\fBcurs_in_wch\fR(3X)
300 in_wchnstr/\fBcurs_in_wchstr\fR(3X)
301 in_wchstr/\fBcurs_in_wchstr\fR(3X)
302 inch/\fBcurs_inch\fR(3X)
303 inchnstr/\fBcurs_inchstr\fR(3X)
304 inchstr/\fBcurs_inchstr\fR(3X)
305 init_color/\fBcurs_color\fR(3X)
306 init_pair/\fBcurs_color\fR(3X)
307 initscr/\fBcurs_initscr\fR(3X)
308 innstr/\fBcurs_instr\fR(3X)
309 innwstr/\fBcurs_inwstr\fR(3X)
310 ins_nwstr/\fBcurs_ins_wstr\fR(3X)
311 ins_wch/\fBcurs_ins_wch\fR(3X)
312 ins_wstr/\fBcurs_ins_wstr\fR(3X)
313 insch/\fBcurs_insch\fR(3X)
314 insdelln/\fBcurs_deleteln\fR(3X)
315 insertln/\fBcurs_deleteln\fR(3X)
316 insnstr/\fBcurs_insstr\fR(3X)
317 insstr/\fBcurs_insstr\fR(3X)
318 instr/\fBcurs_instr\fR(3X)
319 intrflush/\fBcurs_inopts\fR(3X)
320 inwstr/\fBcurs_inwstr\fR(3X)
321 is_linetouched/\fBcurs_touch\fR(3X)
322 is_wintouched/\fBcurs_touch\fR(3X)
323 isendwin/\fBcurs_initscr\fR(3X)
324 key_defined/\fBkey_defined\fR(3X)*
325 key_name/\fBcurs_util\fR(3X)
326 keybound/\fBkeybound\fR(3X)*
327 keyname/\fBcurs_util\fR(3X)
328 keyok/\fBkeyok\fR(3X)*
329 keypad/\fBcurs_inopts\fR(3X)
330 killchar/\fBcurs_termattrs\fR(3X)
331 killwchar/\fBcurs_termattrs\fR(3X)
332 leaveok/\fBcurs_outopts\fR(3X)
333 longname/\fBcurs_termattrs\fR(3X)
334 mcprint/\fBcurs_print\fR(3X)*
335 meta/\fBcurs_inopts\fR(3X)
336 mouse_trafo/\fBcurs_mouse\fR(3X)*
337 mouseinterval/\fBcurs_mouse\fR(3X)*
338 mousemask/\fBcurs_mouse\fR(3X)*
339 move/\fBcurs_move\fR(3X)
340 mvadd_wch/\fBcurs_add_wch\fR(3X)
341 mvadd_wchnstr/\fBcurs_add_wchstr\fR(3X)
342 mvadd_wchstr/\fBcurs_add_wchstr\fR(3X)
343 mvaddch/\fBcurs_addch\fR(3X)
344 mvaddchnstr/\fBcurs_addchstr\fR(3X)
345 mvaddchstr/\fBcurs_addchstr\fR(3X)
346 mvaddnstr/\fBcurs_addstr\fR(3X)
347 mvaddnwstr/\fBcurs_addwstr\fR(3X)
348 mvaddstr/\fBcurs_addstr\fR(3X)
349 mvaddwstr/\fBcurs_addwstr\fR(3X)
350 mvchgat/\fBcurs_attr\fR(3X)
351 mvcur/\fBcurs_terminfo\fR(3X)
352 mvdelch/\fBcurs_delch\fR(3X)
353 mvderwin/\fBcurs_window\fR(3X)
354 mvget_wch/\fBcurs_get_wch\fR(3X)
355 mvget_wstr/\fBcurs_get_wstr\fR(3X)
356 mvgetch/\fBcurs_getch\fR(3X)
357 mvgetn_wstr/\fBcurs_get_wstr\fR(3X)
358 mvgetnstr/\fBcurs_getstr\fR(3X)
359 mvgetstr/\fBcurs_getstr\fR(3X)
360 mvhline/\fBcurs_border\fR(3X)
361 mvhline_set/\fBcurs_border_set\fR(3X)
362 mvin_wch/\fBcurs_in_wch\fR(3X)
363 mvin_wchnstr/\fBcurs_in_wchstr\fR(3X)
364 mvin_wchstr/\fBcurs_in_wchstr\fR(3X)
365 mvinch/\fBcurs_inch\fR(3X)
366 mvinchnstr/\fBcurs_inchstr\fR(3X)
367 mvinchstr/\fBcurs_inchstr\fR(3X)
368 mvinnstr/\fBcurs_instr\fR(3X)
369 mvinnwstr/\fBcurs_inwstr\fR(3X)
370 mvins_nwstr/\fBcurs_ins_wstr\fR(3X)
371 mvins_wch/\fBcurs_ins_wch\fR(3X)
372 mvins_wstr/\fBcurs_ins_wstr\fR(3X)
373 mvinsch/\fBcurs_insch\fR(3X)
374 mvinsnstr/\fBcurs_insstr\fR(3X)
375 mvinsstr/\fBcurs_insstr\fR(3X)
376 mvinstr/\fBcurs_instr\fR(3X)
377 mvinwstr/\fBcurs_inwstr\fR(3X)
378 mvprintw/\fBcurs_printw\fR(3X)
379 mvscanw/\fBcurs_scanw\fR(3X)
380 mvvline/\fBcurs_border\fR(3X)
381 mvvline_set/\fBcurs_border_set\fR(3X)
382 mvwadd_wch/\fBcurs_add_wch\fR(3X)
383 mvwadd_wchnstr/\fBcurs_add_wchstr\fR(3X)
384 mvwadd_wchstr/\fBcurs_add_wchstr\fR(3X)
385 mvwaddch/\fBcurs_addch\fR(3X)
386 mvwaddchnstr/\fBcurs_addchstr\fR(3X)
387 mvwaddchstr/\fBcurs_addchstr\fR(3X)
388 mvwaddnstr/\fBcurs_addstr\fR(3X)
389 mvwaddnwstr/\fBcurs_addwstr\fR(3X)
390 mvwaddstr/\fBcurs_addstr\fR(3X)
391 mvwaddwstr/\fBcurs_addwstr\fR(3X)
392 mvwchgat/\fBcurs_attr\fR(3X)
393 mvwdelch/\fBcurs_delch\fR(3X)
394 mvwget_wch/\fBcurs_get_wch\fR(3X)
395 mvwget_wstr/\fBcurs_get_wstr\fR(3X)
396 mvwgetch/\fBcurs_getch\fR(3X)
397 mvwgetn_wstr/\fBcurs_get_wstr\fR(3X)
398 mvwgetnstr/\fBcurs_getstr\fR(3X)
399 mvwgetstr/\fBcurs_getstr\fR(3X)
400 mvwhline/\fBcurs_border\fR(3X)
401 mvwhline_set/\fBcurs_border_set\fR(3X)
402 mvwin/\fBcurs_window\fR(3X)
403 mvwin_wch/\fBcurs_in_wch\fR(3X)
404 mvwin_wchnstr/\fBcurs_in_wchstr\fR(3X)
405 mvwin_wchstr/\fBcurs_in_wchstr\fR(3X)
406 mvwinch/\fBcurs_inch\fR(3X)
407 mvwinchnstr/\fBcurs_inchstr\fR(3X)
408 mvwinchstr/\fBcurs_inchstr\fR(3X)
409 mvwinnstr/\fBcurs_instr\fR(3X)
410 mvwinnwstr/\fBcurs_inwstr\fR(3X)
411 mvwins_nwstr/\fBcurs_ins_wstr\fR(3X)
412 mvwins_wch/\fBcurs_ins_wch\fR(3X)
413 mvwins_wstr/\fBcurs_ins_wstr\fR(3X)
414 mvwinsch/\fBcurs_insch\fR(3X)
415 mvwinsnstr/\fBcurs_insstr\fR(3X)
416 mvwinsstr/\fBcurs_insstr\fR(3X)
417 mvwinstr/\fBcurs_instr\fR(3X)
418 mvwinwstr/\fBcurs_inwstr\fR(3X)
419 mvwprintw/\fBcurs_printw\fR(3X)
420 mvwscanw/\fBcurs_scanw\fR(3X)
421 mvwvline/\fBcurs_border\fR(3X)
422 mvwvline_set/\fBcurs_border_set\fR(3X)
423 napms/\fBcurs_kernel\fR(3X)
424 newpad/\fBcurs_pad\fR(3X)
425 newterm/\fBcurs_initscr\fR(3X)
426 newwin/\fBcurs_window\fR(3X)
427 nl/\fBcurs_outopts\fR(3X)
428 nocbreak/\fBcurs_inopts\fR(3X)
429 nodelay/\fBcurs_inopts\fR(3X)
430 noecho/\fBcurs_inopts\fR(3X)
431 nonl/\fBcurs_outopts\fR(3X)
432 noqiflush/\fBcurs_inopts\fR(3X)
433 noraw/\fBcurs_inopts\fR(3X)
434 notimeout/\fBcurs_inopts\fR(3X)
435 overlay/\fBcurs_overlay\fR(3X)
436 overwrite/\fBcurs_overlay\fR(3X)
437 pair_content/\fBcurs_color\fR(3X)
438 pechochar/\fBcurs_pad\fR(3X)
439 pnoutrefresh/\fBcurs_pad\fR(3X)
440 prefresh/\fBcurs_pad\fR(3X)
441 printw/\fBcurs_printw\fR(3X)
442 putp/\fBcurs_terminfo\fR(3X)
443 putwin/\fBcurs_util\fR(3X)
444 qiflush/\fBcurs_inopts\fR(3X)
445 raw/\fBcurs_inopts\fR(3X)
446 redrawwin/\fBcurs_refresh\fR(3X)
447 refresh/\fBcurs_refresh\fR(3X)
448 reset_prog_mode/\fBcurs_kernel\fR(3X)
449 reset_shell_mode/\fBcurs_kernel\fR(3X)
450 resetty/\fBcurs_kernel\fR(3X)
451 resizeterm/\fBresizeterm\fR(3X)*
452 restartterm/\fBcurs_terminfo\fR(3X)
453 ripoffline/\fBcurs_kernel\fR(3X)
454 savetty/\fBcurs_kernel\fR(3X)
455 scanw/\fBcurs_scanw\fR(3X)
456 scr_dump/\fBcurs_scr_dump\fR(3X)
457 scr_init/\fBcurs_scr_dump\fR(3X)
458 scr_restore/\fBcurs_scr_dump\fR(3X)
459 scr_set/\fBcurs_scr_dump\fR(3X)
460 scrl/\fBcurs_scroll\fR(3X)
461 scroll/\fBcurs_scroll\fR(3X)
462 scrollok/\fBcurs_outopts\fR(3X)
463 set_curterm/\fBcurs_terminfo\fR(3X)
464 set_term/\fBcurs_initscr\fR(3X)
465 setcchar/\fBcurs_getcchar\fR(3X)
466 setscrreg/\fBcurs_outopts\fR(3X)
467 setsyx/\fBcurs_kernel\fR(3X)
468 setterm/\fBcurs_terminfo\fR(3X)
469 setupterm/\fBcurs_terminfo\fR(3X)
470 slk_attr/\fBcurs_slk\fR(3X)*
471 slk_attr_off/\fBcurs_slk\fR(3X)
472 slk_attr_on/\fBcurs_slk\fR(3X)
473 slk_attr_set/\fBcurs_slk\fR(3X)
474 slk_attroff/\fBcurs_slk\fR(3X)
475 slk_attron/\fBcurs_slk\fR(3X)
476 slk_attrset/\fBcurs_slk\fR(3X)
477 slk_clear/\fBcurs_slk\fR(3X)
478 slk_color/\fBcurs_slk\fR(3X)
479 slk_init/\fBcurs_slk\fR(3X)
480 slk_label/\fBcurs_slk\fR(3X)
481 slk_noutrefresh/\fBcurs_slk\fR(3X)
482 slk_refresh/\fBcurs_slk\fR(3X)
483 slk_restore/\fBcurs_slk\fR(3X)
484 slk_set/\fBcurs_slk\fR(3X)
485 slk_touch/\fBcurs_slk\fR(3X)
486 standend/\fBcurs_attr\fR(3X)
487 standout/\fBcurs_attr\fR(3X)
488 start_color/\fBcurs_color\fR(3X)
489 subpad/\fBcurs_pad\fR(3X)
490 subwin/\fBcurs_window\fR(3X)
491 syncok/\fBcurs_window\fR(3X)
492 term_attrs/\fBcurs_termattrs\fR(3X)
493 termattrs/\fBcurs_termattrs\fR(3X)
494 termname/\fBcurs_termattrs\fR(3X)
495 tgetent/\fBcurs_termcap\fR(3X)
496 tgetflag/\fBcurs_termcap\fR(3X)
497 tgetnum/\fBcurs_termcap\fR(3X)
498 tgetstr/\fBcurs_termcap\fR(3X)
499 tgoto/\fBcurs_termcap\fR(3X)
500 tigetflag/\fBcurs_terminfo\fR(3X)
501 tigetnum/\fBcurs_terminfo\fR(3X)
502 tigetstr/\fBcurs_terminfo\fR(3X)
503 timeout/\fBcurs_inopts\fR(3X)
504 touchline/\fBcurs_touch\fR(3X)
505 touchwin/\fBcurs_touch\fR(3X)
506 tparm/\fBcurs_terminfo\fR(3X)
507 tputs/\fBcurs_termcap\fR(3X)
508 tputs/\fBcurs_terminfo\fR(3X)
509 trace/\fBcurs_trace\fR(3X)*
510 typeahead/\fBcurs_inopts\fR(3X)
511 unctrl/\fBcurs_util\fR(3X)
512 unget_wch/\fBcurs_get_wch\fR(3X)
513 ungetch/\fBcurs_getch\fR(3X)
514 ungetmouse/\fBcurs_mouse\fR(3X)*
515 untouchwin/\fBcurs_touch\fR(3X)
516 use_default_colors/\fBdefault_colors\fR(3X)*
517 use_env/\fBcurs_util\fR(3X)
518 use_extended_names/\fBcurs_extend\fR(3X)*
519 vid_attr/\fBcurs_terminfo\fR(3X)
520 vid_puts/\fBcurs_terminfo\fR(3X)
521 vidattr/\fBcurs_terminfo\fR(3X)
522 vidputs/\fBcurs_terminfo\fR(3X)
523 vline/\fBcurs_border\fR(3X)
524 vline_set/\fBcurs_border_set\fR(3X)
525 vw_printw/\fBcurs_printw\fR(3X)
526 vw_scanw/\fBcurs_scanw\fR(3X)
527 vwprintw/\fBcurs_printw\fR(3X)
528 vwscanw/\fBcurs_scanw\fR(3X)
529 wadd_wch/\fBcurs_add_wch\fR(3X)
530 wadd_wchnstr/\fBcurs_add_wchstr\fR(3X)
531 wadd_wchstr/\fBcurs_add_wchstr\fR(3X)
532 waddch/\fBcurs_addch\fR(3X)
533 waddchnstr/\fBcurs_addchstr\fR(3X)
534 waddchstr/\fBcurs_addchstr\fR(3X)
535 waddnstr/\fBcurs_addstr\fR(3X)
536 waddnwstr/\fBcurs_addwstr\fR(3X)
537 waddstr/\fBcurs_addstr\fR(3X)
538 waddwstr/\fBcurs_addwstr\fR(3X)
539 wattr_get/\fBcurs_attr\fR(3X)
540 wattr_off/\fBcurs_attr\fR(3X)
541 wattr_on/\fBcurs_attr\fR(3X)
542 wattr_set/\fBcurs_attr\fR(3X)
543 wattroff/\fBcurs_attr\fR(3X)
544 wattron/\fBcurs_attr\fR(3X)
545 wattrset/\fBcurs_attr\fR(3X)
546 wbkgd/\fBcurs_bkgd\fR(3X)
547 wbkgdset/\fBcurs_bkgd\fR(3X)
548 wbkgrnd/\fBcurs_bkgrnd\fR(3X)
549 wbkgrndset/\fBcurs_bkgrnd\fR(3X)
550 wborder/\fBcurs_border\fR(3X)
551 wborder_set/\fBcurs_border_set\fR(3X)
552 wchgat/\fBcurs_attr\fR(3X)
553 wclear/\fBcurs_clear\fR(3X)
554 wclrtobot/\fBcurs_clear\fR(3X)
555 wclrtoeol/\fBcurs_clear\fR(3X)
556 wcolor_set/\fBcurs_attr\fR(3X)
557 wcursyncup/\fBcurs_window\fR(3X)
558 wdelch/\fBcurs_delch\fR(3X)
559 wdeleteln/\fBcurs_deleteln\fR(3X)
560 wecho_wchar/\fBcurs_add_wch\fR(3X)
561 wechochar/\fBcurs_addch\fR(3X)
562 wenclose/\fBcurs_mouse\fR(3X)*
563 werase/\fBcurs_clear\fR(3X)
564 wget_wch/\fBcurs_get_wch\fR(3X)
565 wget_wstr/\fBcurs_get_wstr\fR(3X)
566 wgetbkgrnd/\fBcurs_bkgrnd\fR(3X)
567 wgetch/\fBcurs_getch\fR(3X)
568 wgetn_wstr/\fBcurs_get_wstr\fR(3X)
569 wgetnstr/\fBcurs_getstr\fR(3X)
570 wgetstr/\fBcurs_getstr\fR(3X)
571 whline/\fBcurs_border\fR(3X)
572 whline_set/\fBcurs_border_set\fR(3X)
573 win_wch/\fBcurs_in_wch\fR(3X)
574 win_wchnstr/\fBcurs_in_wchstr\fR(3X)
575 win_wchstr/\fBcurs_in_wchstr\fR(3X)
576 winch/\fBcurs_inch\fR(3X)
577 winchnstr/\fBcurs_inchstr\fR(3X)
578 winchstr/\fBcurs_inchstr\fR(3X)
579 winnstr/\fBcurs_instr\fR(3X)
580 winnwstr/\fBcurs_inwstr\fR(3X)
581 wins_nwstr/\fBcurs_ins_wstr\fR(3X)
582 wins_wch/\fBcurs_ins_wch\fR(3X)
583 wins_wstr/\fBcurs_ins_wstr\fR(3X)
584 winsch/\fBcurs_insch\fR(3X)
585 winsdelln/\fBcurs_deleteln\fR(3X)
586 winsertln/\fBcurs_deleteln\fR(3X)
587 winsnstr/\fBcurs_insstr\fR(3X)
588 winsstr/\fBcurs_insstr\fR(3X)
589 winstr/\fBcurs_instr\fR(3X)
590 winwstr/\fBcurs_inwstr\fR(3X)
591 wmouse_trafo/\fBcurs_mouse\fR(3X)*
592 wmove/\fBcurs_move\fR(3X)
593 wnoutrefresh/\fBcurs_refresh\fR(3X)
594 wprintw/\fBcurs_printw\fR(3X)
595 wredrawln/\fBcurs_refresh\fR(3X)
596 wrefresh/\fBcurs_refresh\fR(3X)
597 wresize/\fBwresize\fR(3X)*
598 wscanw/\fBcurs_scanw\fR(3X)
599 wscrl/\fBcurs_scroll\fR(3X)
600 wsetscrreg/\fBcurs_outopts\fR(3X)
601 wstandend/\fBcurs_attr\fR(3X)
602 wstandout/\fBcurs_attr\fR(3X)
603 wsyncdown/\fBcurs_window\fR(3X)
604 wsyncup/\fBcurs_window\fR(3X)
605 wtimeout/\fBcurs_inopts\fR(3X)
606 wtouchln/\fBcurs_touch\fR(3X)
607 wunctrl/\fBcurs_util\fR(3X)
608 wvline/\fBcurs_border\fR(3X)
609 wvline_set/\fBcurs_border_set\fR(3X)
610 .TE
611 .SH RETURN VALUE
612 Routines that return an integer return \fBERR\fR upon failure and an
613 integer value other than \fBERR\fR upon successful completion, unless
614 otherwise noted in the routine descriptions.
615 .PP
616 All macros return the value of the \fBw\fR version, except \fBsetscrreg\fR,
617 \fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and \fBgetmaxyx\fR.  The return
618 values of \fBsetscrreg\fR, \fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and
619 \fBgetmaxyx\fR are undefined (i.e., these should not be used as the
620 right-hand side of assignment statements).
621 .PP
622 Routines that return pointers return \fBNULL\fR on error.
623 .SH ENVIRONMENT
624 The following environment symbols are useful for customizing the
625 runtime behavior of the \fBncurses\fR library.  The most important
626 ones have been already discussed in detail.
627 .TP 5
628 BAUDRATE
629 The debugging library checks this environment symbol when the application
630 has redirected output to a file.
631 The symbol's numeric value is used for the baudrate.
632 If no value is found, \fBncurses\fR uses 9600.
633 This allows testers to construct repeatable test-cases
634 that take into account costs that depend on baudrate.
635 .TP 5
636 CC
637 When set, change occurrences of the command_character
638 (i.e., the \fBcmdch\fP capability)
639 of the loaded terminfo entries to the value of this symbol.
640 Very few terminfo entries provide this feature.
641 .TP 5
642 COLUMNS
643 Specify the width of the screen in characters.
644 Applications running in a windowing environment usually are able to
645 obtain the width of the window in which they are executing.
646 If neither the $COLUMNS value nor the terminal's screen size is available,
647 \fBncurses\fR uses the size which may be specified in the terminfo database
648 (i.e., the \fBcols\fR capability).
649 .IP
650 It is important that your application use a correct size for the screen.
651 However, this is not always possible because your application may be
652 running on a host which does not honor NAWS (Negotiations About Window
653 Size), or because you are temporarily running as another user.
654 .IP
655 Either COLUMNS or LINES symbols may be specified independently.
656 This is mainly useful to circumvent legacy misfeatures of terminal descriptions,
657 e.g., xterm which commonly specifies a 65 line screen.
658 For best results, \fBlines\fR and \fBcols\fR should not be specified in
659 a terminal description for terminals which are run as emulations.
660 .IP
661 Use the \fBuse_env\fR function to disable this feature.
662 .TP 5
663 ESCDELAY
664 Specifies the total time, in milliseconds, for which ncurses will
665 await a character sequence, e.g., a function key.
666 The default value, 1000 milliseconds, is enough for most uses.
667 However, it is made a variable to accommodate unusual applications.
668 .IP
669 The most common instance where you may wish to change this value
670 is to work with slow hosts, e.g., running on a network.
671 If the host cannot read characters rapidly enough, it will have the same
672 effect as if the terminal did not send characters rapidly enough.
673 The library will still see a timeout.
674 .IP
675 Note that xterm mouse events are built up from character sequences
676 received from the xterm.
677 If your application makes heavy use of multiple-clicking, you may
678 wish to lengthen this default value because the timeout applies
679 to the composed multi-click event as well as the individual clicks.
680 .TP 5
681 HOME
682 Tells \fBncurses\fR where your home directory is.
683 That is where it may read and write auxiliary terminal descriptions:
684 .IP
685 $HOME/.termcap
686 .br
687 $HOME/.terminfo
688 .TP 5
689 LINES
690 Like COLUMNS, specify the height of the screen in characters.
691 See COLUMNS for a detailed description.
692 .TP 5
693 MOUSE_BUTTONS_123
694 This applies only to the OS/2 EMX port.
695 It specifies the order of buttons on the mouse.
696 OS/2 numbers a 3-button mouse inconsistently from other
697 platforms:
698 .sp
699 1 = left
700 .br
701 2 = right
702 .br
703 3 = middle.
704 .sp
705 This symbol lets you customize the mouse.
706 The symbol must be three numeric digits 1-3 in any order, e.g., 123 or 321.
707 If it is not specified, \fBncurses\fR uses 132.
708 .TP 5
709 NCURSES_ASSUMED_COLORS
710 Override the compiled-in assumption that the
711 terminal's default colors are white-on-black
712 (see \fBassume_default_colors\fR(3X)).
713 You may set the foreground and background color values with this environment
714 variable by proving a 2-element list: foreground,background.
715 For example, to tell ncurses to not assume anything
716 about the colors, set this to "-1,-1".
717 To make it green-on-black, set it to "2,0".
718 Any positive value from zero to the terminfo \fBmax_colors\fR value is allowed.
719 .TP 5
720 NCURSES_NO_PADDING
721 Most of the terminal descriptions in the terminfo database are written
722 for real "hardware" terminals.
723 Many people use terminal emulators
724 which run in a windowing environment and use curses-based applications.
725 Terminal emulators can duplicate
726 all of the important aspects of a hardware terminal, but they do not
727 have the same limitations.
728 The chief limitation of a hardware terminal from the standpoint
729 of your application is the management of dataflow, i.e., timing.
730 Unless a hardware terminal is interfaced into a terminal concentrator
731 (which does flow control),
732 it (or your application) must manage dataflow, preventing overruns.
733 The cheapest solution (no hardware cost)
734 is for your program to do this by pausing after
735 operations that the terminal does slowly, such as clearing the display.
736 .IP
737 As a result, many terminal descriptions (including the vt100)
738 have delay times embedded.  You may wish to use these descriptions,
739 but not want to pay the performance penalty.
740 .IP
741 Set the NCURSES_NO_PADDING symbol to disable all but mandatory
742 padding.  Mandatory padding is used as a part of special control
743 sequences such as \fIflash\fR.
744 .TP 5
745 NCURSES_NO_SETBUF
746 Normally \fBncurses\fR enables buffered output during terminal initialization.
747 This is done (as in SVr4 curses) for performance reasons.
748 For testing purposes, both of \fBncurses\fR and certain applications,
749 this feature is made optional.  Setting the NCURSES_NO_SETBUF variable
750 disables output buffering, leaving the output in the original (usually
751 line buffered) mode.
752 .TP 5
753 NCURSES_TRACE
754 During initialization, the \fBncurses\fR debugging library
755 checks the NCURSES_TRACE symbol.
756 If it is defined, to a numeric value, \fBncurses\fR calls the \fBtrace\fR
757 function, using that value as the argument.
758 .IP
759 The argument values, which are defined in \fBcurses.h\fR, provide several
760 types of information.
761 When running with traces enabled, your application will write the
762 file \fBtrace\fR to the current directory.
763 .TP 5
764 TERM
765 Denotes your terminal type.
766 Each terminal type is distinct, though many are similar.
767 .TP 5
768 TERMCAP
769 If the \fBncurses\fR library has been configured with \fItermcap\fR
770 support, \fBncurses\fR will check for a terminal's description in
771 termcap form if it is not available in the terminfo database.
772 .IP
773 The TERMCAP symbol contains either a terminal description (with
774 newlines stripped out),
775 or a file name telling where the information denoted by the TERM symbol exists.
776 In either case, setting it directs \fBncurses\fR to ignore
777 the usual place for this information, e.g., /etc/termcap.
778 .TP 5
779 TERMINFO
780 Overrides the directory in which \fBncurses\fR searches for your terminal
781 description.
782 This is the simplest, but not the only way to change the list of directories.
783 The complete list of directories in order follows:
784 .RS
785 .TP 3
786 -
787 the last directory to which \fBncurses\fR wrote, if any, is searched first
788 .TP 3
789 -
790 the directory specified by the TERMINFO symbol
791 .TP 3
792 -
793 $HOME/.terminfo
794 .TP 3
795 -
796 directories listed in the TERMINFO_DIRS symbol
797 .TP 3
798 -
799 one or more directories whose names are configured and compiled into the
800 ncurses library, e.g.,
801 @TERMINFO@
802 .RE
803 .TP 5
804 TERMINFO_DIRS
805 Specifies a list of directories to search for terminal descriptions.
806 The list is separated by colons (i.e., ":") on Unix, semicolons on OS/2 EMX.
807 All of the terminal descriptions are in terminfo form, which makes
808 a subdirectory named for the first letter of the terminal names therein.
809 .TP 5
810 TERMPATH
811 If TERMCAP does not hold a file name then \fBncurses\fR checks
812 the TERMPATH symbol.
813 This is a list of filenames separated by spaces or colons (i.e., ":") on Unix, semicolons on OS/2 EMX.
814 If the TERMPATH symbol is not set, \fBncurses\fR looks in the files
815 /etc/termcap, /usr/share/misc/termcap and $HOME/.termcap, in that order.
816 .PP
817 The library may be configured to disregard the following variables when the
818 current user is the superuser (root), or if the application uses setuid or
819 setgid permissions:
820 $TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as $HOME.
821 .SH FILES
822 .TP 5
823 @DATADIR@/tabset
824 directory containing initialization files for the terminal capability database
825 @TERMINFO@
826 terminal capability database
827 .SH SEE ALSO
828 \fBterminfo\fR(\*n) and related pages whose names begin "curs_" for detailed routine
829 descriptions.
830 .SH EXTENSIONS
831 The \fBncurses\fR library can be compiled with an option (\fB\-DUSE_GETCAP\fR)
832 that falls back to the old-style /etc/termcap file if the terminal setup code
833 cannot find a terminfo entry corresponding to \fBTERM\fR.  Use of this feature
834 is not recommended, as it essentially includes an entire termcap compiler in
835 the \fBncurses\fR startup code, at significant cost in core and startup cycles.
836 .PP
837 The \fBncurses\fR library includes facilities for capturing mouse events on
838 certain terminals (including xterm). See the \fBcurs_mouse\fR(3X)
839 manual page for details.
840 .PP
841 The \fBncurses\fR library includes facilities for responding to window
842 resizing events, e.g., when running in an xterm.
843 See the \fBresizeterm\fR(3X)
844 and \fBwresize\fR(3X) manual pages for details.
845 In addition, the library may be configured with a SIGWINCH handler.
846 .PP
847 The \fBncurses\fR library extends the fixed set of function key capabilities
848 of terminals by allowing the application designer to define additional
849 key sequences at runtime.
850 See the \fBdefine_key\fR(3X)
851 \fBkey_defined\fR(3X),
852 and \fBkeyok\fR(3X) manual pages for details.
853 .PP
854 The \fBncurses\fR library can exploit the capabilities of terminals which
855 implement the ISO-6429 SGR 39 and SGR 49 controls, which allow an application
856 to reset the terminal to its original foreground and background colors.
857 From the users' perspective, the application is able to draw colored
858 text on a background whose color is set independently, providing better
859 control over color contrasts.
860 See the \fBdefault_colors\fR(3X) manual page for details.
861 .PP
862 The \fBncurses\fR library includes a function for directing application output
863 to a printer attached to the terminal device.  See the \fBcurs_print\fR(3X)
864 manual page for details.
865 .SH PORTABILITY
866 The \fBncurses\fR library is intended to be BASE-level conformant with the XSI
867 Curses standard.  The EXTENDED XSI Curses functionality
868 (including color support) is supported.
869 .PP
870 A small number of local differences (that is, individual differences between
871 the XSI Curses and \fBncurses\fR calls) are described in \fBPORTABILITY\fR
872 sections of the library man pages.
873 .PP
874 The routine \fBhas_key\fR is not part of XPG4, nor is it present in SVr4.  See
875 the \fBcurs_getch\fR(3X) manual page for details.
876 .PP
877 The routine \fBslk_attr\fR is not part of XPG4, nor is it present in SVr4.  See
878 the \fBcurs_slk\fR(3X) manual page for details.
879 .PP
880 The routines \fBgetmouse\fR, \fBmousemask\fR, \fBungetmouse\fR,
881 \fBmouseinterval\fR, and \fBwenclose\fR relating to mouse interfacing are not
882 part of XPG4, nor are they present in SVr4.  See the \fBcurs_mouse\fR(3X)
883 manual page for details.
884 .PP
885 The routine \fBmcprint\fR was not present in any previous curses
886 implementation.  See the \fBcurs_print\fR(3X) manual page for details.
887 .PP
888 The routine \fBwresize\fR is not part of XPG4, nor is it present in SVr4.  See
889 the \fBwresize\fR(3X) manual page for details.
890 .PP
891 In historic curses versions, delays embedded in the capabilities \fBcr\fR,
892 \fBind\fR, \fBcub1\fR, \fBff\fR and \fBtab\fR activated corresponding delay
893 bits in the UNIX tty driver.  In this implementation, all padding is done by
894 NUL sends.  This method is slightly more expensive, but narrows the interface
895 to the UNIX kernel significantly and increases the package's portability
896 correspondingly.
897 .SH NOTES
898 The header file \fB<curses.h>\fR automatically includes the header files
899 \fB<stdio.h>\fR and \fB<unctrl.h>\fR.
900 .PP
901 If standard output from a \fBncurses\fR program is re-directed to something
902 which is not a tty, screen updates will be directed to standard error.  This
903 was an undocumented feature of AT&T System V Release 3 curses.
904 .SH AUTHORS
905 Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
906 Based on pcurses by Pavel Curtis.
907 .\"#
908 .\"# The following sets edit modes for GNU EMACS
909 .\"# Local Variables:
910 .\"# mode:nroff
911 .\"# fill-column:79
912 .\"# End: