diff options
Diffstat (limited to 'lib/libcurses/curses.3tbl')
-rw-r--r-- | lib/libcurses/curses.3tbl | 626 |
1 files changed, 626 insertions, 0 deletions
diff --git a/lib/libcurses/curses.3tbl b/lib/libcurses/curses.3tbl new file mode 100644 index 00000000000..6ef4b0a28bd --- /dev/null +++ b/lib/libcurses/curses.3tbl @@ -0,0 +1,626 @@ +.\" Id: ncurses.3x,v 1.19 1997/01/05 00:42:39 tom Exp $ +.TH curses 3X "" +.ds n 5 +.ds d /usr/share/terminfo +.SH NAME +\fBcurses\fR - CRT screen handling and optimization package +.SH SYNOPSIS +\fB#include <curses.h>\fR +.br +.SH DESCRIPTION +The \fBcurses\fR library routines give the user a terminal-independent method +of updating character screens with reasonable optimization. This +implementation is ``new curses'' (ncurses) and is the approved replacement for +4.4BSD classic curses, which has been discontinued. + +The \fBcurses\fR routines emulate the \fBcurses\fR(3X) library of System V +Release 4 UNIX, and the XPG4 curses standard (XSI curses) but the \fBcurses\fR +library is freely redistributable in source form. Differences from the SVr4 +curses are summarized under the EXTENSIONS and BUGS sections below and +described in detail in the EXTENSIONS and BUGS sections of individual man +pages. + +A program using these routines must be linked with the \fB-lcurses\fR option. + +The \fBcurses\fR package supports: overall screen, window and pad +manipulation; output to windows and pads; reading terminal input; control over +terminal and \fBcurses\fR input and output options; environment query +routines; color manipulation; use of soft label keys; terminfo capabilities; +and access to low-level terminal-manipulation routines. + +To initialize the routines, the routine \fBinitscr\fR or \fBnewterm\fR +must be called before any of the other routines that deal with windows +and screens are used. The routine \fBendwin\fR must be called before +exiting. To get character-at-a-time input without echoing (most +interactive, screen oriented programs want this), the following +sequence should be used: + + \fBinitscr(); cbreak(); noecho();\fR + +Most programs would additionally use the sequence: + + \fBnonl();\fR + \fBintrflush(stdscr, FALSE);\fR + \fBkeypad(stdscr, TRUE);\fR + +Before a \fBcurses\fR program is run, the tab stops of the terminal +should be set and its initialization strings, if defined, must be +output. This can be done by executing the \fBtput init\fR command +after the shell environment variable \fBTERM\fR has been exported. +\fBtset(1)\fR is usually responsible for doing this. +[See \fBterminfo\fR(\*n) for further details.] + +The \fBcurses\fR library permits manipulation of data structures, +called \fIwindows\fR, which can be thought of as two-dimensional +arrays of characters representing all or part of a CRT screen. A +default window called \fBstdscr\fR, which is the size of the terminal +screen, is supplied. Others may be created with \fBnewwin\fR. + +Note that \fBcurses\fR does not handle overlapping windows, that's done by +the \fBpanels(3x)\fR library. This means that you can either use +\fBstdscr\fR or divide the screen into tiled windows and not using +\fBstdscr\fR at all. Mixing the two will result in unpredictable, and +undesired, effects. + +Windows are referred to by variables declared as \fBWINDOW *\fR. +These data structures are manipulated with routines described here and +elsewhere in the \fBcurses\fR manual pages. Among which the most basic +routines are \fBmove\fR and \fBaddch\fR. More general versions of +these routines are included with names beginning with \fBw\fR, +allowing the user to specify a window. The routines not beginning +with \fBw\fR affect \fBstdscr\fR.) + +After using routines to manipulate a window, \fBrefresh\fR is called, +telling \fBcurses\fR to make the user's CRT screen look like +\fBstdscr\fR. The characters in a window are actually of type +\fBchtype\fR, (character and attribute data) so that other information +about the character may also be stored with each character. + +Special windows called \fIpads\fR may also be manipulated. These are windows +which are not constrained to the size of the screen and whose contents need not +be completely displayed. See curs_pad(3X) for more information. + +In addition to drawing characters on the screen, video attributes and colors +may be supported, causing the characters to show up in such modes as +underlined, in reverse video, or in color on terminals that support such +display enhancements. Line drawing characters may be specified to be output. +On input, \fBcurses\fR is also able to translate arrow and function keys that +transmit escape sequences into single values. The video attributes, line +drawing characters, and input values use names, defined in \fB<curses.h>\fR, +such as \fBA_REVERSE\fR, \fBACS_HLINE\fR, and \fBKEY_LEFT\fR. + +If the environment variables \fBLINES\fR and \fBCOLUMNS\fR are set, or if the +program is executing in a window environment, line and column information in +the environment will override information read by \fIterminfo\fR. This would +effect a program running in an AT&T 630 layer, for example, where the size of a +screen is changeable. + +If the environment variable \fBTERMINFO\fR is defined, any program using +\fBcurses\fR checks for a local terminal definition before checking in the +standard place. For example, if \fBTERM\fR is set to \fBatt4424\fR, then the +compiled terminal definition is found in + + \fB\*d/a/att4424\fR. + +(The \fBa\fR is copied from the first letter of \fBatt4424\fR to avoid +creation of huge directories.) However, if \fBTERMINFO\fR is set to +\fB$HOME/myterms\fR, \fBcurses\fR first checks + + \fB$HOME/myterms/a/att4424\fR, + +and if that fails, it then checks + + \fB\*d/a/att4424\fR. + +This is useful for developing experimental definitions or when write +permission in \fB\*d\fR is not available. + +The integer variables \fBLINES\fR and \fBCOLS\fR are defined in +\fB<curses.h>\fR and will be filled in by \fBinitscr\fR with the size of the +screen. The constants \fBTRUE\fR and \fBFALSE\fR have the values \fB1\fR and +\fB0\fR, respectively. + +The \fBcurses\fR routines also define the \fBWINDOW *\fR variable \fBcurscr\fR +which is used for certain low-level operations like clearing and redrawing a +screen containing garbage. The \fBcurscr\fR can be used in only a few +routines. + +.SS Routine and Argument Names +Many \fBcurses\fR routines have two or more versions. The routines prefixed +with \fBw\fR require a window argument. The routines prefixed with \fBp\fR +require a pad argument. Those without a prefix generally use \fBstdscr\fR. + +The routines prefixed with \fBmv\fR require a \fIy\fR and \fIx\fR +coordinate to move to before performing the appropriate action. The +\fBmv\fR routines imply a call to \fBmove\fR before the call to the +other routine. The coordinate \fIy\fR always refers to the row (of +the window), and \fIx\fR always refers to the column. The upper +left-hand corner is always (0,0), not (1,1). + +The routines prefixed with \fBmvw\fR take both a window argument and +\fIx\fR and \fIy\fR coordinates. The window argument is always +specified before the coordinates. + +In each case, \fIwin\fR is the window affected, and \fIpad\fR is the +pad affected; \fIwin\fR and \fIpad\fR are always pointers to type +\fBWINDOW\fR. + +Option setting routines require a Boolean flag \fIbf\fR with the value +\fBTRUE\fR or \fBFALSE\fR; \fIbf\fR is always of type \fBbool\fR. The +variables \fIch\fR and \fIattrs\fR below are always of type +\fBchtype\fR. The types \fBWINDOW\fR, \fBSCREEN\fR, \fBbool\fR, and +\fBchtype\fR are defined in \fB<curses.h>\fR. The type \fBTERMINAL\fR +is defined in \fB<term.h>\fR. All other arguments are integers. + +.SS Routine Name Index +The following table lists each \fBcurses\fR routine and the name of +the manual page on which it is described. Routines flagged with `*' +are ncurses-specific, not described by XPG4 or present in SVr4. + +.TS +center tab(/); +l l +l l . +\fBcurses\fR Routine Name/Manual Page Name += +addch/curs_addch(3X) +addchnstr/curs_addchstr(3X) +addchstr/curs_addchstr(3X) +addnstr/curs_addstr(3X) +addstr/curs_addstr(3X) +attroff/curs_attr(3X) +attron/curs_attr(3X) +attrset/curs_attr(3X) +baudrate/curs_termattrs(3X) +beep/curs_beep(3X) +bkgd/curs_bkgd(3X) +bkgdset/curs_bkgd(3X) +border/curs_border(3X) +box/curs_border(3X) +can_change_color/curs_color(3X) +cbreak/curs_inopts(3X) +clear/curs_clear(3X) +clearok/curs_outopts(3X) +clrtobot/curs_clear(3X) +clrtoeol/curs_clear(3X) +color_content/curs_color(3X) +copywin/curs_overlay(3X) +curs_set/curs_kernel(3X) +def_prog_mode/curs_kernel(3X) +def_shell_mode/curs_kernel(3X) +del_curterm/curs_terminfo(3X) +delay_output/curs_util(3X) +delch/curs_delch(3X) +deleteln/curs_deleteln(3X) +delscreen/curs_initscr(3X) +delwin/curs_window(3X) +derwin/curs_window(3X) +doupdate/curs_refresh(3X) +dupwin/curs_window(3X) +echo/curs_inopts(3X) +echochar/curs_addch(3X) +endwin/curs_initscr(3X) +erase/curs_clear(3X) +erasechar/curs_termattrs(3X) +filter/curs_util(3X) +flash/curs_beep(3X) +flushinp/curs_util(3X) +getbegyx/curs_getyx(3X) +getch/curs_getch(3X) +getmaxyx/curs_getyx(3X) +getmouse/curs_mouse(3X)* +getparyx/curs_getyx(3X) +getstr/curs_getstr(3X) +getsyx/curs_kernel(3X) +getwin/curs_util(3X) +getyx/curs_getyx(3X) +halfdelay/curs_inopts(3X) +has_colors/curs_color(3X) +has_ic/curs_termattrs(3X) +has_il/curs_termattrs(3X) +has_key/curs_getch(3X)* +hline/curs_border(3X) +idcok/curs_outopts(3X) +idlok/curs_outopts(3X) +immedok/curs_outopts(3X) +inch/curs_inch(3X) +inchnstr/curs_inchstr(3X) +inchstr/curs_inchstr(3X) +init_color/curs_color(3X) +init_pair/curs_color(3X) +initscr/curs_initscr(3X) +innstr/curs_instr(3X) +insch/curs_insch(3X) +insdelln/curs_deleteln(3X) +insertln/curs_deleteln(3X) +insnstr/curs_insstr(3X) +insstr/curs_insstr(3X) +instr/curs_instr(3X) +intrflush/curs_inopts(3X) +is_linetouched/curs_touch(3X) +is_wintouched/curs_touch(3X) +isendwin/curs_initscr(3X) +keyname/curs_util(3X) +keypad/curs_inopts(3X) +killchar/curs_termattrs(3X) +leaveok/curs_outopts(3X) +longname/curs_termattrs(3X) +mcprint/curs_print(3X)* +meta/curs_inopts(3X) +mouseinterval/curs_mouse(3X)* +mousemask/curs_mouse(3X)* +move/curs_move(3X) +mvaddch/curs_addch(3X) +mvaddchnstr/curs_addchstr(3X) +mvaddchstr/curs_addchstr(3X) +mvaddnstr/curs_addstr(3X) +mvaddstr/curs_addstr(3X) +mvcur/curs_terminfo(3X) +mvdelch/curs_delch(3X) +mvderwin/curs_window(3X) +mvgetch/curs_getch(3X) +mvgetstr/curs_getstr(3X) +mvinch/curs_inch(3X) +mvinchnstr/curs_inchstr(3X) +mvinchstr/curs_inchstr(3X) +mvinnstr/curs_instr(3X) +mvinsch/curs_insch(3X) +mvinsnstr/curs_insstr(3X) +mvinsstr/curs_insstr(3X) +mvinstr/curs_instr(3X) +mvprintw/curs_printw(3X) +mvscanw/curs_scanw(3X) +mvwaddch/curs_addch(3X) +mvwaddchnstr/curs_addchstr(3X) +mvwaddchstr/curs_addchstr(3X) +mvwaddnstr/curs_addstr(3X) +mvwaddstr/curs_addstr(3X) +mvwdelch/curs_delch(3X) +mvwgetch/curs_getch(3X) +mvwgetstr/curs_getstr(3X) +mvwin/curs_window(3X) +mvwinch/curs_inch(3X) +mvwinchnstr/curs_inchstr(3X) +mvwinchstr/curs_inchstr(3X) +mvwinnstr/curs_instr(3X) +mvwinsch/curs_insch(3X) +mvwinsnstr/curs_insstr(3X) +mvwinsstr/curs_insstr(3X) +mvwinstr/curs_instr(3X) +mvwprintw/curs_printw(3X) +mvwscanw/curs_scanw(3X) +napms/curs_kernel(3X) +newpad/curs_pad(3X) +newterm/curs_initscr(3X) +newwin/curs_window(3X) +nl/curs_outopts(3X) +nocbreak/curs_inopts(3X) +nodelay/curs_inopts(3X) +noecho/curs_inopts(3X) +nonl/curs_outopts(3X) +noqiflush/curs_inopts(3X) +noraw/curs_inopts(3X) +notimeout/curs_inopts(3X) +overlay/curs_overlay(3X) +overwrite/curs_overlay(3X) +pair_content/curs_color(3X) +pechochar/curs_pad(3X) +pnoutrefresh/curs_pad(3X) +prefresh/curs_pad(3X) +printw/curs_printw(3X) +putp/curs_terminfo(3X) +putwin/curs_util(3X) +qiflush/curs_inopts(3X) +raw/curs_inopts(3X) +redrawwin/curs_refresh(3X) +refresh/curs_refresh(3X) +reset_prog_mode/curs_kernel(3X) +reset_shell_mode/curs_kernel(3X) +resetty/curs_kernel(3X) +resizeterm/resizeterm(3x)* +restartterm/curs_terminfo(3X) +ripoffline/curs_kernel(3X) +savetty/curs_kernel(3X) +scanw/curs_scanw(3X) +scr_dump/curs_scr_dump(3X) +scr_init/curs_scr_dump(3X) +scr_restore/curs_scr_dump(3X) +scr_set/curs_scr_dump(3X) +scrl/curs_scroll(3X) +scroll/curs_scroll(3X) +scrollok/curs_outopts(3X) +set_curterm/curs_terminfo(3X) +set_term/curs_initscr(3X) +setscrreg/curs_outopts(3X) +setsyx/curs_kernel(3X) +setterm/curs_terminfo(3X) +setupterm/curs_terminfo(3X) +slk_attr/curs_slk(3X)* +slk_attroff/curs_slk(3X) +slk_attron/curs_slk(3X) +slk_attrset/curs_slk(3X) +slk_clear/curs_slk(3X) +slk_init/curs_slk(3X) +slk_label/curs_slk(3X) +slk_noutrefresh/curs_slk(3X) +slk_refresh/curs_slk(3X) +slk_restore/curs_slk(3X) +slk_set/curs_slk(3X) +slk_touch/curs_slk(3X) +standend/curs_attr(3X) +standout/curs_attr(3X) +start_color/curs_color(3X) +subpad/curs_pad(3X) +subwin/curs_window(3X) +syncok/curs_window(3X) +termattrs/curs_termattrs(3X) +termname/curs_termattrs(3X) +tgetent/curs_termcap(3X) +tgetflag/curs_termcap(3X) +tgetnum/curs_termcap(3X) +tgetstr/curs_termcap(3X) +tgoto/curs_termcap(3X) +tigetflag/curs_terminfo(3X) +tigetnum/curs_terminfo(3X) +tigetstr/curs_terminfo(3X) +timeout/curs_inopts(3X) +touchline/curs_touch(3X) +touchwin/curs_touch(3X) +tparm/curs_terminfo(3X) +tputs/curs_termcap(3X) +tputs/curs_terminfo(3X) +typeahead/curs_inopts(3X) +unctrl/curs_util(3X) +ungetch/curs_getch(3X) +ungetmouse/curs_mouse(3X)* +untouchwin/curs_touch(3X) +use_env/curs_util(3X) +vidattr/curs_terminfo(3X) +vidputs/curs_terminfo(3X) +vline/curs_border(3X) +vwprintw/curs_printw(3X) +vwscanw/curs_scanw(3X) +waddch/curs_addch(3X) +waddchnstr/curs_addchstr(3X) +waddchstr/curs_addchstr(3X) +waddnstr/curs_addstr(3X) +waddstr/curs_addstr(3X) +wattroff/curs_attr(3X) +wattron/curs_attr(3X) +wattrset/curs_attr(3X) +wbkgd/curs_bkgd(3X) +wbkgdset/curs_bkgd(3X) +wborder/curs_border(3X) +wclear/curs_clear(3X) +wclrtobot/curs_clear(3X) +wclrtoeol/curs_clear(3X) +wcursyncup/curs_window(3X) +wdelch/curs_delch(3X) +wdeleteln/curs_deleteln(3X) +wechochar/curs_addch(3X) +wenclose/curs_mouse(3X)* +werase/curs_clear(3X) +wgetch/curs_getch(3X) +wgetnstr/curs_getstr(3X) +wgetstr/curs_getstr(3X) +whline/curs_border(3X) +winch/curs_inch(3X) +winchnstr/curs_inchstr(3X) +winchstr/curs_inchstr(3X) +winnstr/curs_instr(3X) +winsch/curs_insch(3X) +winsdelln/curs_deleteln(3X) +winsertln/curs_deleteln(3X) +winsnstr/curs_insstr(3X) +winsstr/curs_insstr(3X) +winstr/curs_instr(3X) +wmove/curs_move(3X) +wnoutrefresh/curs_refresh(3X) +wprintw/curs_printw(3X) +wredrawln/curs_refresh(3X) +wrefresh/curs_refresh(3X) +wresize/wresize(3x)* +wscanw/curs_scanw(3X) +wscrl/curs_scroll(3X) +wsetscrreg/curs_outopts(3X) +wstandend/curs_attr(3X) +wstandout/curs_attr(3X) +wsyncdown/curs_window(3X) +wsyncup/curs_window(3X) +wtimeout/curs_inopts(3X) +wtouchln/curs_touch(3X) +wvline/curs_border(3X) +.TE +.SH RETURN VALUE +Routines that return an integer return \fBERR\fR upon failure and an +integer value other than \fBERR\fR upon successful completion, unless +otherwise noted in the routine descriptions. + +All macros return the value of the \fBw\fR version, except \fBsetscrreg\fR, +\fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, \fBgetmaxyx\fR. The return +values of \fBsetscrreg\fR, \fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and +\fBgetmaxyx\fR are undefined (\fIi\fR.\fIe\fR., these should not be used as the +right-hand side of assignment statements). + +Routines that return pointers return \fBNULL\fR on error. +.SH SEE ALSO +\fBterminfo\fR(\*n) and 3X pages whose names begin "curs_" for detailed routine +descriptions. +.SH EXTENSIONS +The \fBcurses\fR library can be compiled with an option (\fB-DTERMCAP_FILE\fR) +that falls back to the old-style /etc/termcap file if the terminal setup code +cannot find a terminfo entry corresponding to \fBTERM\fR. Use of this feature +is not recommended, as it essentially includes an entire termcap compiler in +the \fBcurses\fR startup code, at significant cost in core and startup cycles. + +Compiling with \fB-DTERMCAP_FILE\fR changes the library's initialization +sequence in a way intended to mimic the behavior of 4.4BSD curses. If there is +no local or system terminfo entry matching \fBTERM\fR, then the library looks +for termcap entries in the following places: (1) if \fBTERMINFO\fR is +undefined, in the file named by \fBTERMCAP_FILE\fR; (2) if \fBTERMINFO\fR is +defined and begins with a slash, it is interpreted as the name of a termcap +file to search for \fBTERM\fR; (3) otherwise, if \fBTERMINFO\fR has a leading +string that looks like a terminal entry name list, and it matches \fBTERM\fR, +the contents of \fBTERMINFO\fR is interpreted as a termcap; (4) if +\fBTERMINFO\fR looks like a termcap but doesn't match \fBTERM\fR, the termcap +file is searched for among the colon-separated paths in the environment +variable \fBTERMPATHS\fR if that is defined, and in ~/.termcap and the file +value of \fBTERMCAP_FILE\fR otherwise. + +Versions of \fBcurses\fR compiled on PC clones support display of the PC ROM +characters (including ROM characters 0-31, which stock SVr4 curses cannot +display). See the EXTENSIONS sections of \fBcurs_addch\fR(3x) and +\fBcurs_attr\fR(3x). + +The \fBcurses\fR library includes facilities for capturing mouse events on +certain terminals (including xterm). See the \fBcurs_mouse\fR(3X) +manual page for details. + +The \fBcurses\fR library includes a function for directing application output +to a printer attached to the terminal device. See the \fBcurs_print\fR(3X) +manual page for details. +.SH PORTABILITY +The \fBcurses\fR library is intended to be BASE-level conformant with the XSI +Curses standard. Certain portions of the EXTENDED XSI Curses functionality +(including color support) are supported. The following EXTENDED XSI Curses +calls in support of wide (multibyte) characters are not yet implemented: +\fBaddnwstr\fB, +\fBaddwstr\fB, +\fBmvaddnwstr\fB, +\fBmvwaddnwstr\fB, +\fBmvaddwstr\fB, +\fBwaddnwstr\fB, +\fBwaddwstr\fB, +\fBadd_wch\fB, +\fBwadd_wch\fB, +\fBmvadd_wch\fB, +\fBmvwadd_wch\fB, +\fBadd_wchnstr\fB, +\fBadd_wchstr\fB, +\fBwadd_wchnstr\fB, +\fBwadd_wchstr\fB, +\fBmvadd_wchnstr\fB, +\fBmvadd_wchstr\fB, +\fBmvwadd_wchnstr\fB, +\fBmvwadd_wchstr\fB, +\fBbkgrndset\fB, +\fBbkgrnd\fB, +\fBgetbkgrnd\fB, +\fBwbkgrnd\fB, +\fBwbkgrndset\fB, +\fBwgetbkgrnd\fB, +\fBborder_set\fB, +\fBwborder_set\fB, +\fBbox_set\fB, +\fBhline_set\fB, +\fBmvhline_set\fB, +\fBmvvline_set\fB, +\fBmvwhline_set\fB, +\fBmvwvline_set\fB, +\fBwhline_set\fB, +\fBvhline_set\fB, +\fBwvline_set\fB, +\fBecho_wchar\fB, +\fBwecho_wchar\fB, +\fBerasewchar\fB, +\fBkillwchar\fB, +\fBget_wch\fB, +\fBmvget_wch\fB, +\fBmvwget_ch\fB, +\fBwget_wch\fB, +\fBgetwchtype\fB, +\fBget_wstr\fB, +\fBgetn_wstr\fB, +\fBwget_wstr\fB, +\fBwgetn_wstr\fB, +\fBmvget_wstr\fB, +\fBmvgetn_wstr\fB, +\fBmvwget_wstr\fB, +\fBmvwgetn_wstr\fB, +\fBinnwstr\fB, +\fBinwstr\fB, +\fBwinnwstr\fB, +\fBwinwstr\fB, +\fBmvinnwstr\fB, +\fBmvinwstr\fB, +\fBmvwinnwstr\fB, +\fBmvwinwstr\fB, +\fBins_nwstr\fB, +\fBins_wstr\fB, +\fBmvins_nwstr\fB, +\fBmvins_wstr\fB, +\fBmvwins_nwstr\fB, +\fBmvwins_wstr\fB, +\fBwins_nwstr\fB, +\fBwins_wstr\fB, +\fBins_wch\fB, +\fBwins_wch\fB, +\fBmvins_wch\fB, +\fBmvwins_wch\fB, +\fBin_wch\fB, +\fBwin_wch\fB, +\fBmvin_wch\fB, +\fBmvwin_wch\fB, +\fBinwchstr\fB, +\fBinwchnstr\fB, +\fBwinwchstr\fB, +\fBwinwchnstr\fB, +\fBmvinwchstr\fB, +\fBmvinwchnstr\fB, +\fBmvinwchstr\fB, +\fBmvwinwchnstr\fB. +.PP +A small number of local differences (that is, individual differences between +the XSI Curses and \fBcurses\fR calls) are described in \fBPORTABILITY\fR +sections of the library man pages. +.PP +The routine \fBhas_key\fR is not part of XPG4, nor is it present in SVr4. See +the \fBcurs_getch\fR(3X) manual page for details. +.PP +The routine \fBslk_attr\fR is not part of XPG4, nor is it present in SVr4. See +the \fBcurs_slk\fR(3X) manual page for details. +.PP +The routines \fBgetmouse\fR, \fBmousemask\fR, \fBungetmouse\fR, +\fBmouseinterval\fR, and \fBwenclose\fR relating to mouse interfacing are not +part of XPG4, nor are they present in SVr4. See the \fBcurs_mouse\fR(3X) +manual page for details. +.PP +The routine \fBmcprint\fR was not present in any previous curses +implementation. See the \fBcurs_print\fR(3X) manual page for details. +.PP +The routine \fBwresize\fR is not part of XPG4, nor is it present in SVr4. See +the \fBwresize\fR(3X) manual page for details. +.PP +In historic curses versions, delays embedded in the capabilities \fBcr\fR, +\fBind\fR, \fBcub1\fR, \fBff\fR and \fBtab\fR activated corresponding delay +bits in the UNIX tty driver. In this implementation, all padding is done by +NUL sends. This method is slightly more expensive, but narrows the interface +to the UNIX kernel significantly and increases the package's portability +correspondingly. +.PP +In the XSI standard and SVr4 manual pages, many entry points have prototype +arguments of the for \fBchar *const\fR (or \fBcchar_t *const\fR, or \fBwchar_t +*const\fR, or \fBvoid *const\fR). Depending on one's interpretation of the +ANSI C standard (see section 3.5.4.1), these declarations are either (a) +meaningless, or (b) meaningless and illegal. The declaration \fBconst char +*x\fR is a modifiable pointer to unmodifiable data, but \fBchar *const x\fR' is +an unmodifiable pointer to modifiable data. Given that C passes arguments by +value, \fB<type> *const\fR as a formal type is at best dubious. Some compilers +choke on the prototypes. Therefore, in this implementation, they have been +changed to \fBconst <type> *\fR globally. +.SH NOTES +The header file \fB<curses.h>\fR automatically includes the header files +\fB<stdio.h>\fR and \fB<unctrl.h>\fR. + +If standard output from a \fBcurses\fR program is re-directed to something +which is not a tty, screen updates will be directed to standard error. This +was an undocumented feature of AT&T System V Release 3 curses. +.SH AUTHORS +Zeyd M. Ben-Halim, Eric S. Raymond. Descends from the original pcurses +by Pavel Curtis. +.\"# +.\"# The following sets edit modes for GNU EMACS +.\"# Local Variables: +.\"# mode:nroff +.\"# fill-column:79 +.\"# End: |