0386dba4464f155c73648e964104c389b5d50a5e
[ncurses.git] / man / ncurses.3x
1 .\" $Id: ncurses.3x,v 1.19 1997/01/05 00:42:39 tom Exp $
2 .TH ncurses 3X ""
3 .ds n 5
4 .ds d @DATADIR@/terminfo
5 .SH NAME
6 \fBncurses\fR - CRT screen handling and optimization package
7 .SH SYNOPSIS
8 \fB#include <curses.h>\fR
9 .br
10 .SH DESCRIPTION
11 The \fBcurses\fR library routines give the user a terminal-independent method
12 of updating character screens with reasonable optimization.  This
13 implementation is ``new curses'' (ncurses) and is the approved replacement for
14 4.4BSD classic curses, which has been discontinued.
15
16 The \fBncurses\fR routines emulate the \fBcurses\fR(3X) library of System V
17 Release 4 UNIX, and the XPG4 curses standard (XSI curses) but the \fBncurses\fR
18 library is freely redistributable in source form.  Differences from the SVr4
19 curses are summarized under the EXTENSIONS and BUGS sections below and
20 described in detail in the EXTENSIONS and BUGS sections of individual man
21 pages.
22
23 A program using these routines must be linked with the \fB-lncurses\fR option,
24 or (if it has been generated) with the debugging library \fB-lncurses_g\fR. 
25 (Your system integrator may also have installed these libraries under
26 the names \fB-lcurses\fR and \fB-lcurses_g\fR.)
27 The ncurses_g library generates trace logs (in a file called 'trace' in the
28 current directory) that describe curses actions.
29
30 The \fBncurses\fR package supports: overall screen, window and pad
31 manipulation; output to windows and pads; reading terminal input; control over
32 terminal and \fBcurses\fR input and output options; environment query
33 routines; color manipulation; use of soft label keys; terminfo capabilities;
34 and access to low-level terminal-manipulation routines.
35
36 To initialize the routines, the routine \fBinitscr\fR or \fBnewterm\fR
37 must be called before any of the other routines that deal with windows
38 and screens are used.  The routine \fBendwin\fR must be called before
39 exiting.  To get character-at-a-time input without echoing (most
40 interactive, screen oriented programs want this), the following
41 sequence should be used:
42
43       \fBinitscr(); cbreak(); noecho();\fR
44
45 Most programs would additionally use the sequence:
46
47       \fBnonl();\fR
48       \fBintrflush(stdscr, FALSE);\fR
49       \fBkeypad(stdscr, TRUE);\fR
50
51 Before a \fBcurses\fR program is run, the tab stops of the terminal
52 should be set and its initialization strings, if defined, must be
53 output.  This can be done by executing the \fBtput init\fR command
54 after the shell environment variable \fBTERM\fR has been exported.
55 \fBtset(1)\fR is usually responsible for doing this.
56 [See \fBterminfo\fR(\*n) for further details.]
57
58 The \fBcurses\fR library permits manipulation of data structures,
59 called \fIwindows\fR, which can be thought of as two-dimensional
60 arrays of characters representing all or part of a CRT screen.  A
61 default window called \fBstdscr\fR, which is the size of the terminal
62 screen, is supplied.  Others may be created with \fBnewwin\fR.
63
64 Note that \fBcurses\fR does not handle overlapping windows, that's done by
65 the \fBpanels(3x)\fR library. This means that you can either use
66 \fBstdscr\fR or divide the screen into tiled windows and not using
67 \fBstdscr\fR at all. Mixing the two will result in unpredictable, and
68 undesired, effects.
69
70 Windows are referred to by variables declared as \fBWINDOW *\fR.
71 These data structures are manipulated with routines described here and
72 elsewhere in the \fBncurses\fR manual pages.  Among which the most basic
73 routines are \fBmove\fR and \fBaddch\fR.  More general versions of
74 these routines are included with names beginning with \fBw\fR,
75 allowing the user to specify a window.  The routines not beginning
76 with \fBw\fR affect \fBstdscr\fR.)
77
78 After using routines to manipulate a window, \fBrefresh\fR is called,
79 telling \fBcurses\fR to make the user's CRT screen look like
80 \fBstdscr\fR.  The characters in a window are actually of type
81 \fBchtype\fR, (character and attribute data) so that other information
82 about the character may also be stored with each character.
83
84 Special windows called \fIpads\fR may also be manipulated.  These are windows
85 which are not constrained to the size of the screen and whose contents need not
86 be completely displayed.  See curs_pad(3X) for more information.
87
88 In addition to drawing characters on the screen, video attributes and colors
89 may be supported, causing the characters to show up in such modes as
90 underlined, in reverse video, or in color on terminals that support such
91 display enhancements.  Line drawing characters may be specified to be output.
92 On input, \fBcurses\fR is also able to translate arrow and function keys that
93 transmit escape sequences into single values.  The video attributes, line
94 drawing characters, and input values use names, defined in \fB<curses.h>\fR,
95 such as \fBA_REVERSE\fR, \fBACS_HLINE\fR, and \fBKEY_LEFT\fR.
96
97 If the environment variables \fBLINES\fR and \fBCOLUMNS\fR are set, or if the
98 program is executing in a window environment, line and column information in
99 the environment will override information read by \fIterminfo\fR.  This would
100 effect a program running in an AT&T 630 layer, for example, where the size of a
101 screen is changeable.
102
103 If the environment variable \fBTERMINFO\fR is defined, any program using
104 \fBcurses\fR checks for a local terminal definition before checking in the
105 standard place.  For example, if \fBTERM\fR is set to \fBatt4424\fR, then the
106 compiled terminal definition is found in
107
108       \fB\*d/a/att4424\fR.
109
110 (The \fBa\fR is copied from the first letter of \fBatt4424\fR to avoid
111 creation of huge directories.)  However, if \fBTERMINFO\fR is set to
112 \fB$HOME/myterms\fR, \fBcurses\fR first checks
113
114       \fB$HOME/myterms/a/att4424\fR,
115
116 and if that fails, it then checks
117
118       \fB\*d/a/att4424\fR.
119
120 This is useful for developing experimental definitions or when write
121 permission in \fB\*d\fR is not available.
122
123 The integer variables \fBLINES\fR and \fBCOLS\fR are defined in
124 \fB<curses.h>\fR and will be filled in by \fBinitscr\fR with the size of the
125 screen.  The constants \fBTRUE\fR and \fBFALSE\fR have the values \fB1\fR and
126 \fB0\fR, respectively.
127
128 The \fBcurses\fR routines also define the \fBWINDOW *\fR variable \fBcurscr\fR
129 which is used for certain low-level operations like clearing and redrawing a
130 screen containing garbage.  The \fBcurscr\fR can be used in only a few
131 routines.
132
133 .SS Routine and Argument Names
134 Many \fBcurses\fR routines have two or more versions.  The routines prefixed
135 with \fBw\fR require a window argument.  The routines prefixed with \fBp\fR
136 require a pad argument.  Those without a prefix generally use \fBstdscr\fR.
137
138 The routines prefixed with \fBmv\fR require a \fIy\fR and \fIx\fR
139 coordinate to move to before performing the appropriate action.  The
140 \fBmv\fR routines imply a call to \fBmove\fR before the call to the
141 other routine.  The coordinate \fIy\fR always refers to the row (of
142 the window), and \fIx\fR always refers to the column.  The upper
143 left-hand corner is always (0,0), not (1,1).
144
145 The routines prefixed with \fBmvw\fR take both a window argument and
146 \fIx\fR and \fIy\fR coordinates.  The window argument is always
147 specified before the coordinates.
148
149 In each case, \fIwin\fR is the window affected, and \fIpad\fR is the
150 pad affected; \fIwin\fR and \fIpad\fR are always pointers to type
151 \fBWINDOW\fR.
152
153 Option setting routines require a Boolean flag \fIbf\fR with the value
154 \fBTRUE\fR or \fBFALSE\fR; \fIbf\fR is always of type \fBbool\fR.  The
155 variables \fIch\fR and \fIattrs\fR below are always of type
156 \fBchtype\fR.  The types \fBWINDOW\fR, \fBSCREEN\fR, \fBbool\fR, and
157 \fBchtype\fR are defined in \fB<curses.h>\fR.  The type \fBTERMINAL\fR
158 is defined in \fB<term.h>\fR.  All other arguments are integers.
159
160 .SS Routine Name Index
161 The following table lists each \fBcurses\fR routine and the name of
162 the manual page on which it is described.  Routines flagged with `*'
163 are ncurses-specific, not described by XPG4 or present in SVr4.
164
165 .TS
166 center tab(/);
167 l l
168 l l .
169 \fBcurses\fR Routine Name/Manual Page Name
170 =
171 addch/curs_addch(3X)
172 addchnstr/curs_addchstr(3X)
173 addchstr/curs_addchstr(3X)
174 addnstr/curs_addstr(3X)
175 addstr/curs_addstr(3X)
176 attroff/curs_attr(3X)
177 attron/curs_attr(3X)
178 attrset/curs_attr(3X)
179 baudrate/curs_termattrs(3X)
180 beep/curs_beep(3X)
181 bkgd/curs_bkgd(3X)
182 bkgdset/curs_bkgd(3X)
183 border/curs_border(3X)
184 box/curs_border(3X)
185 can_change_color/curs_color(3X)
186 cbreak/curs_inopts(3X)
187 clear/curs_clear(3X)
188 clearok/curs_outopts(3X)
189 clrtobot/curs_clear(3X)
190 clrtoeol/curs_clear(3X)
191 color_content/curs_color(3X)
192 copywin/curs_overlay(3X)
193 curs_set/curs_kernel(3X)
194 def_prog_mode/curs_kernel(3X)
195 def_shell_mode/curs_kernel(3X)
196 del_curterm/curs_terminfo(3X)
197 delay_output/curs_util(3X)
198 delch/curs_delch(3X)
199 deleteln/curs_deleteln(3X)
200 delscreen/curs_initscr(3X)
201 delwin/curs_window(3X)
202 derwin/curs_window(3X)
203 doupdate/curs_refresh(3X)
204 dupwin/curs_window(3X)
205 echo/curs_inopts(3X)
206 echochar/curs_addch(3X)
207 endwin/curs_initscr(3X)
208 erase/curs_clear(3X)
209 erasechar/curs_termattrs(3X)
210 filter/curs_util(3X)
211 flash/curs_beep(3X)
212 flushinp/curs_util(3X)
213 getbegyx/curs_getyx(3X)
214 getch/curs_getch(3X)
215 getmaxyx/curs_getyx(3X)
216 getmouse/curs_mouse(3X)*
217 getparyx/curs_getyx(3X)
218 getstr/curs_getstr(3X)
219 getsyx/curs_kernel(3X)
220 getwin/curs_util(3X)
221 getyx/curs_getyx(3X)
222 halfdelay/curs_inopts(3X)
223 has_colors/curs_color(3X)
224 has_ic/curs_termattrs(3X)
225 has_il/curs_termattrs(3X)
226 has_key/curs_getch(3X)*
227 hline/curs_border(3X)
228 idcok/curs_outopts(3X)
229 idlok/curs_outopts(3X)
230 immedok/curs_outopts(3X)
231 inch/curs_inch(3X)
232 inchnstr/curs_inchstr(3X)
233 inchstr/curs_inchstr(3X)
234 init_color/curs_color(3X)
235 init_pair/curs_color(3X)
236 initscr/curs_initscr(3X)
237 innstr/curs_instr(3X)
238 insch/curs_insch(3X)
239 insdelln/curs_deleteln(3X)
240 insertln/curs_deleteln(3X)
241 insnstr/curs_insstr(3X)
242 insstr/curs_insstr(3X)
243 instr/curs_instr(3X)
244 intrflush/curs_inopts(3X)
245 is_linetouched/curs_touch(3X)
246 is_wintouched/curs_touch(3X)
247 isendwin/curs_initscr(3X)
248 keyname/curs_util(3X)
249 keypad/curs_inopts(3X)
250 killchar/curs_termattrs(3X)
251 leaveok/curs_outopts(3X)
252 longname/curs_termattrs(3X)
253 mcprint/curs_print(3X)*
254 meta/curs_inopts(3X)
255 mouseinterval/curs_mouse(3X)*
256 mousemask/curs_mouse(3X)*
257 move/curs_move(3X)
258 mvaddch/curs_addch(3X)
259 mvaddchnstr/curs_addchstr(3X)
260 mvaddchstr/curs_addchstr(3X)
261 mvaddnstr/curs_addstr(3X)
262 mvaddstr/curs_addstr(3X)
263 mvcur/curs_terminfo(3X)
264 mvdelch/curs_delch(3X)
265 mvderwin/curs_window(3X)
266 mvgetch/curs_getch(3X)
267 mvgetstr/curs_getstr(3X)
268 mvinch/curs_inch(3X)
269 mvinchnstr/curs_inchstr(3X)
270 mvinchstr/curs_inchstr(3X)
271 mvinnstr/curs_instr(3X)
272 mvinsch/curs_insch(3X)
273 mvinsnstr/curs_insstr(3X)
274 mvinsstr/curs_insstr(3X)
275 mvinstr/curs_instr(3X)
276 mvprintw/curs_printw(3X)
277 mvscanw/curs_scanw(3X)
278 mvwaddch/curs_addch(3X)
279 mvwaddchnstr/curs_addchstr(3X)
280 mvwaddchstr/curs_addchstr(3X)
281 mvwaddnstr/curs_addstr(3X)
282 mvwaddstr/curs_addstr(3X)
283 mvwdelch/curs_delch(3X)
284 mvwgetch/curs_getch(3X)
285 mvwgetstr/curs_getstr(3X)
286 mvwin/curs_window(3X)
287 mvwinch/curs_inch(3X)
288 mvwinchnstr/curs_inchstr(3X)
289 mvwinchstr/curs_inchstr(3X)
290 mvwinnstr/curs_instr(3X)
291 mvwinsch/curs_insch(3X)
292 mvwinsnstr/curs_insstr(3X)
293 mvwinsstr/curs_insstr(3X)
294 mvwinstr/curs_instr(3X)
295 mvwprintw/curs_printw(3X)
296 mvwscanw/curs_scanw(3X)
297 napms/curs_kernel(3X)
298 newpad/curs_pad(3X)
299 newterm/curs_initscr(3X)
300 newwin/curs_window(3X)
301 nl/curs_outopts(3X)
302 nocbreak/curs_inopts(3X)
303 nodelay/curs_inopts(3X)
304 noecho/curs_inopts(3X)
305 nonl/curs_outopts(3X)
306 noqiflush/curs_inopts(3X)
307 noraw/curs_inopts(3X)
308 notimeout/curs_inopts(3X)
309 overlay/curs_overlay(3X)
310 overwrite/curs_overlay(3X)
311 pair_content/curs_color(3X)
312 pechochar/curs_pad(3X)
313 pnoutrefresh/curs_pad(3X)
314 prefresh/curs_pad(3X)
315 printw/curs_printw(3X)
316 putp/curs_terminfo(3X)
317 putwin/curs_util(3X)
318 qiflush/curs_inopts(3X)
319 raw/curs_inopts(3X)
320 redrawwin/curs_refresh(3X)
321 refresh/curs_refresh(3X)
322 reset_prog_mode/curs_kernel(3X)
323 reset_shell_mode/curs_kernel(3X)
324 resetty/curs_kernel(3X)
325 resizeterm/resizeterm(3x)*
326 restartterm/curs_terminfo(3X)
327 ripoffline/curs_kernel(3X)
328 savetty/curs_kernel(3X)
329 scanw/curs_scanw(3X)
330 scr_dump/curs_scr_dump(3X)
331 scr_init/curs_scr_dump(3X)
332 scr_restore/curs_scr_dump(3X)
333 scr_set/curs_scr_dump(3X)
334 scrl/curs_scroll(3X)
335 scroll/curs_scroll(3X)
336 scrollok/curs_outopts(3X)
337 set_curterm/curs_terminfo(3X)
338 set_term/curs_initscr(3X)
339 setscrreg/curs_outopts(3X)
340 setsyx/curs_kernel(3X)
341 setterm/curs_terminfo(3X)
342 setupterm/curs_terminfo(3X)
343 slk_attr/curs_slk(3X)*
344 slk_attroff/curs_slk(3X)
345 slk_attron/curs_slk(3X)
346 slk_attrset/curs_slk(3X)
347 slk_clear/curs_slk(3X)
348 slk_init/curs_slk(3X)
349 slk_label/curs_slk(3X)
350 slk_noutrefresh/curs_slk(3X)
351 slk_refresh/curs_slk(3X)
352 slk_restore/curs_slk(3X)
353 slk_set/curs_slk(3X)
354 slk_touch/curs_slk(3X)
355 standend/curs_attr(3X)
356 standout/curs_attr(3X)
357 start_color/curs_color(3X)
358 subpad/curs_pad(3X)
359 subwin/curs_window(3X)
360 syncok/curs_window(3X)
361 termattrs/curs_termattrs(3X)
362 termname/curs_termattrs(3X)
363 tgetent/curs_termcap(3X)
364 tgetflag/curs_termcap(3X)
365 tgetnum/curs_termcap(3X)
366 tgetstr/curs_termcap(3X)
367 tgoto/curs_termcap(3X)
368 tigetflag/curs_terminfo(3X)
369 tigetnum/curs_terminfo(3X)
370 tigetstr/curs_terminfo(3X)
371 timeout/curs_inopts(3X)
372 touchline/curs_touch(3X)
373 touchwin/curs_touch(3X)
374 tparm/curs_terminfo(3X)
375 tputs/curs_termcap(3X)
376 tputs/curs_terminfo(3X)
377 typeahead/curs_inopts(3X)
378 unctrl/curs_util(3X)
379 ungetch/curs_getch(3X)
380 ungetmouse/curs_mouse(3X)*
381 untouchwin/curs_touch(3X)
382 use_env/curs_util(3X)
383 vidattr/curs_terminfo(3X)
384 vidputs/curs_terminfo(3X)
385 vline/curs_border(3X)
386 vwprintw/curs_printw(3X)
387 vwscanw/curs_scanw(3X)
388 waddch/curs_addch(3X)
389 waddchnstr/curs_addchstr(3X)
390 waddchstr/curs_addchstr(3X)
391 waddnstr/curs_addstr(3X)
392 waddstr/curs_addstr(3X)
393 wattroff/curs_attr(3X)
394 wattron/curs_attr(3X)
395 wattrset/curs_attr(3X)
396 wbkgd/curs_bkgd(3X)
397 wbkgdset/curs_bkgd(3X)
398 wborder/curs_border(3X)
399 wclear/curs_clear(3X)
400 wclrtobot/curs_clear(3X)
401 wclrtoeol/curs_clear(3X)
402 wcursyncup/curs_window(3X)
403 wdelch/curs_delch(3X)
404 wdeleteln/curs_deleteln(3X)
405 wechochar/curs_addch(3X)
406 wenclose/curs_mouse(3X)*
407 werase/curs_clear(3X)
408 wgetch/curs_getch(3X)
409 wgetnstr/curs_getstr(3X)
410 wgetstr/curs_getstr(3X)
411 whline/curs_border(3X)
412 winch/curs_inch(3X)
413 winchnstr/curs_inchstr(3X)
414 winchstr/curs_inchstr(3X)
415 winnstr/curs_instr(3X)
416 winsch/curs_insch(3X)
417 winsdelln/curs_deleteln(3X)
418 winsertln/curs_deleteln(3X)
419 winsnstr/curs_insstr(3X)
420 winsstr/curs_insstr(3X)
421 winstr/curs_instr(3X)
422 wmove/curs_move(3X)
423 wnoutrefresh/curs_refresh(3X)
424 wprintw/curs_printw(3X)
425 wredrawln/curs_refresh(3X)
426 wrefresh/curs_refresh(3X)
427 wresize/wresize(3x)*
428 wscanw/curs_scanw(3X)
429 wscrl/curs_scroll(3X)
430 wsetscrreg/curs_outopts(3X)
431 wstandend/curs_attr(3X)
432 wstandout/curs_attr(3X)
433 wsyncdown/curs_window(3X)
434 wsyncup/curs_window(3X)
435 wtimeout/curs_inopts(3X)
436 wtouchln/curs_touch(3X)
437 wvline/curs_border(3X)
438 .TE
439 .SH RETURN VALUE
440 Routines that return an integer return \fBERR\fR upon failure and an
441 integer value other than \fBERR\fR upon successful completion, unless
442 otherwise noted in the routine descriptions.
443
444 All macros return the value of the \fBw\fR version, except \fBsetscrreg\fR,
445 \fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, \fBgetmaxyx\fR.  The return
446 values of \fBsetscrreg\fR, \fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and
447 \fBgetmaxyx\fR are undefined (\fIi\fR.\fIe\fR., these should not be used as the
448 right-hand side of assignment statements).
449
450 Routines that return pointers return \fBNULL\fR on error.
451 .SH SEE ALSO
452 \fBterminfo\fR(\*n) and 3X pages whose names begin "curs_" for detailed routine
453 descriptions.
454 .SH EXTENSIONS
455 The \fBcurses\fR library can be compiled with an option (\fB-DTERMCAP_FILE\fR)
456 that falls back to the old-style /etc/termcap file if the terminal setup code
457 cannot find a terminfo entry corresponding to \fBTERM\fR.  Use of this feature
458 is not recommended, as it essentially includes an entire termcap compiler in
459 the \fBcurses\fR startup code, at significant cost in core and startup cycles.
460
461 Compiling with \fB-DTERMCAP_FILE\fR changes the library's initialization
462 sequence in a way intended to mimic the behavior of 4.4BSD curses.  If there is
463 no local or system terminfo entry matching \fBTERM\fR, then the library looks
464 for termcap entries in the following places: (1) if \fBTERMINFO\fR is
465 undefined, in the file named by \fBTERMCAP_FILE\fR; (2) if \fBTERMINFO\fR is
466 defined and begins with a slash, it is interpreted as the name of a termcap
467 file to search for \fBTERM\fR; (3) otherwise, if \fBTERMINFO\fR has a leading
468 string that looks like a terminal entry name list, and it matches \fBTERM\fR,
469 the contents of \fBTERMINFO\fR is interpreted as a termcap; (4) if
470 \fBTERMINFO\fR looks like a termcap but doesn't match \fBTERM\fR, the termcap
471 file is searched for among the colon-separated paths in the environment
472 variable \fBTERMPATHS\fR if that is defined, and in ~/.termcap and the file
473 value of \fBTERMCAP_FILE\fR otherwise.
474
475 Versions of \fBcurses\fR compiled on PC clones support display of the PC ROM
476 characters (including ROM characters 0-31, which stock SVr4 curses cannot
477 display). See the EXTENSIONS sections of \fBcurs_addch\fR(3x) and
478 \fBcurs_attr\fR(3x).
479
480 The \fBcurses\fR library includes facilities for capturing mouse events on
481 certain terminals (including xterm). See the \fBcurs_mouse\fR(3X)
482 manual page for details.
483
484 The \fBcurses\fR library includes a function for directing application output
485 to a printer attached to the terminal device.  See the \fBcurs_print\fR(3X)
486 manual page for details.
487 .SH PORTABILITY
488 The \fBcurses\fR library is intended to be BASE-level conformant with the XSI
489 Curses standard.  Certain portions of the EXTENDED XSI Curses functionality
490 (including color support) are supported.  The following EXTENDED XSI Curses
491 calls in support of wide (multibyte) characters are not yet implemented:
492 \fBaddnwstr\fB,
493 \fBaddwstr\fB,
494 \fBmvaddnwstr\fB,
495 \fBmvwaddnwstr\fB,
496 \fBmvaddwstr\fB,
497 \fBwaddnwstr\fB,
498 \fBwaddwstr\fB,
499 \fBadd_wch\fB,
500 \fBwadd_wch\fB,
501 \fBmvadd_wch\fB,
502 \fBmvwadd_wch\fB,
503 \fBadd_wchnstr\fB,
504 \fBadd_wchstr\fB,
505 \fBwadd_wchnstr\fB,
506 \fBwadd_wchstr\fB,
507 \fBmvadd_wchnstr\fB,
508 \fBmvadd_wchstr\fB,
509 \fBmvwadd_wchnstr\fB,
510 \fBmvwadd_wchstr\fB,
511 \fBbkgrndset\fB,
512 \fBbkgrnd\fB,
513 \fBgetbkgrnd\fB,
514 \fBwbkgrnd\fB,
515 \fBwbkgrndset\fB,
516 \fBwgetbkgrnd\fB,
517 \fBborder_set\fB,
518 \fBwborder_set\fB,
519 \fBbox_set\fB,
520 \fBhline_set\fB,
521 \fBmvhline_set\fB,
522 \fBmvvline_set\fB,
523 \fBmvwhline_set\fB,
524 \fBmvwvline_set\fB,
525 \fBwhline_set\fB,
526 \fBvhline_set\fB,
527 \fBwvline_set\fB,
528 \fBecho_wchar\fB,
529 \fBwecho_wchar\fB,
530 \fBerasewchar\fB,
531 \fBkillwchar\fB,
532 \fBget_wch\fB,
533 \fBmvget_wch\fB,
534 \fBmvwget_ch\fB,
535 \fBwget_wch\fB,
536 \fBgetwchtype\fB,
537 \fBget_wstr\fB,
538 \fBgetn_wstr\fB,
539 \fBwget_wstr\fB,
540 \fBwgetn_wstr\fB,
541 \fBmvget_wstr\fB,
542 \fBmvgetn_wstr\fB,
543 \fBmvwget_wstr\fB,
544 \fBmvwgetn_wstr\fB,
545 \fBinnwstr\fB,
546 \fBinwstr\fB,
547 \fBwinnwstr\fB,
548 \fBwinwstr\fB,
549 \fBmvinnwstr\fB,
550 \fBmvinwstr\fB,
551 \fBmvwinnwstr\fB,
552 \fBmvwinwstr\fB,
553 \fBins_nwstr\fB,
554 \fBins_wstr\fB,
555 \fBmvins_nwstr\fB,
556 \fBmvins_wstr\fB,
557 \fBmvwins_nwstr\fB,
558 \fBmvwins_wstr\fB,
559 \fBwins_nwstr\fB,
560 \fBwins_wstr\fB,
561 \fBins_wch\fB,
562 \fBwins_wch\fB,
563 \fBmvins_wch\fB,
564 \fBmvwins_wch\fB,
565 \fBin_wch\fB,
566 \fBwin_wch\fB,
567 \fBmvin_wch\fB,
568 \fBmvwin_wch\fB,
569 \fBinwchstr\fB,
570 \fBinwchnstr\fB,
571 \fBwinwchstr\fB,
572 \fBwinwchnstr\fB,
573 \fBmvinwchstr\fB,
574 \fBmvinwchnstr\fB,
575 \fBmvinwchstr\fB,
576 \fBmvwinwchnstr\fB.
577 .PP
578 A small number of local differences (that is, individual differences between
579 the XSI Curses and \fBcurses\fR calls) are described in \fBPORTABILITY\fR
580 sections of the library man pages.
581 .PP
582 The routine \fBhas_key\fR is not part of XPG4, nor is it present in SVr4.  See
583 the \fBcurs_getch\fR(3X) manual page for details.
584 .PP
585 The routine \fBslk_attr\fR is not part of XPG4, nor is it present in SVr4.  See
586 the \fBcurs_slk\fR(3X) manual page for details.
587 .PP
588 The routines \fBgetmouse\fR, \fBmousemask\fR, \fBungetmouse\fR,
589 \fBmouseinterval\fR, and \fBwenclose\fR relating to mouse interfacing are not
590 part of XPG4, nor are they present in SVr4.  See the \fBcurs_mouse\fR(3X)
591 manual page for details.
592 .PP
593 The routine \fBmcprint\fR was not present in any previous curses
594 implementation.  See the \fBcurs_print\fR(3X) manual page for details.
595 .PP
596 The routine \fBwresize\fR is not part of XPG4, nor is it present in SVr4.  See
597 the \fBwresize\fR(3X) manual page for details.
598 .PP
599 In historic curses versions, delays embedded in the capabilities \fBcr\fR,
600 \fBind\fR, \fBcub1\fR, \fBff\fR and \fBtab\fR activated corresponding delay
601 bits in the UNIX tty driver.  In this implementation, all padding is done by
602 NUL sends.  This method is slightly more expensive, but narrows the interface
603 to the UNIX kernel significantly and increases the package's portability
604 correspondingly.
605 .PP
606 In the XSI standard and SVr4 manual pages, many entry points have prototype
607 arguments of the for \fBchar *const\fR (or \fBcchar_t *const\fR, or \fBwchar_t
608 *const\fR, or \fBvoid *const\fR).  Depending on one's interpretation of the
609 ANSI C standard (see section 3.5.4.1), these declarations are either (a)
610 meaningless, or (b) meaningless and illegal.  The declaration \fBconst char
611 *x\fR is a modifiable pointer to unmodifiable data, but \fBchar *const x\fR' is
612 an unmodifiable pointer to modifiable data.  Given that C passes arguments by
613 value, \fB<type> *const\fR as a formal type is at best dubious.  Some compilers
614 choke on the prototypes.  Therefore, in this implementation, they have been
615 changed to \fBconst <type> *\fR globally.
616 .SH NOTES
617 The header file \fB<curses.h>\fR automatically includes the header files
618 \fB<stdio.h>\fR and \fB<unctrl.h>\fR.
619
620 If standard output from a \fBcurses\fR program is re-directed to something
621 which is not a tty, screen updates will be directed to standard error.  This
622 was an undocumented feature of AT&T System V Release 3 curses.
623 .SH AUTHORS
624 Zeyd M. Ben-Halim, Eric S. Raymond.  Descends from the original pcurses
625 by Pavel Curtis.
626 .\"#
627 .\"# The following sets edit modes for GNU EMACS
628 .\"# Local Variables:
629 .\"# mode:nroff
630 .\"# fill-column:79
631 .\"# End: