X-Git-Url: http://ncurses.scripts.mit.edu/?a=blobdiff_plain;ds=sidebyside;f=doc%2Fhtml%2Fman%2Fncurses.3x.html;h=c42513ab55f8ede63c33eaff164ccd50268a5634;hb=027ae42953e3186daed8f3882da73de48291b606;hp=5fb8400f404fb2f425ed1ecd2bb6eead5246b2f4;hpb=c633e5103a29a38532cf1925257b91cea33fd090;p=ncurses.git diff --git a/doc/html/man/ncurses.3x.html b/doc/html/man/ncurses.3x.html index 5fb8400f..c42513ab 100644 --- a/doc/html/man/ncurses.3x.html +++ b/doc/html/man/ncurses.3x.html @@ -1,602 +1,752 @@ + + +
++ncurses(3x) ncurses(3x) + + +
- ncurses - CRT screen handling and optimization package + ncurses - CRT screen handling and optimization package
- #include <curses.h> + #include <curses.h>
- The ncurses library routines give the user a terminal- - independent method of updating character screens with - reasonable optimization. This implementation is ``new + The ncurses library routines give the user a terminal- + independent method of updating character screens with rea- + sonable optimization. This implementation is ``new curses'' (ncurses) and is the approved replacement for - 4.4BSD classic curses, which has been discontinued. + 4.4BSD classic curses, which has been discontinued. This + describes ncurses version 5.5 (patch 20061209). - The ncurses routines emulate the curses(3x) library of + The ncurses routines emulate the curses(3x) library of System V Release 4 UNIX, and the XPG4 curses standard (XSI - curses) but the ncurses 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. + curses) but the ncurses library is freely redistributable + in source form. Differences from the SVr4 curses are sum- + marized under the EXTENSIONS and PORTABILITY sections + below and described in detail in the respective EXTEN- + SIONS, PORTABILITY and BUGS sections of individual man + pages. A program using these routines must be linked with the - -lncurses option, or (if it has been generated) with the - debugging library -lncurses_g. (Your system integrator + -lncurses option, or (if it has been generated) with the + debugging library -lncurses_g. (Your system integrator may also have installed these libraries under the names - -lcurses and -lcurses_g.) The ncurses_g library generates - trace logs (in a file called 'trace' in the current - directory) that describe curses actions. - - The ncurses package supports: overall screen, window and - pad manipulation; output to windows and pads; reading - terminal input; control over terminal and curses 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 initscr or newterm + -lcurses and -lcurses_g.) The ncurses_g library generates + trace logs (in a file called 'trace' in the current direc- + tory) that describe curses actions. See also the section + on ALTERNATE CONFIGURATIONS. + + The ncurses package supports: overall screen, window and + pad manipulation; output to windows and pads; reading ter- + minal input; control over terminal and curses input and + output options; environment query routines; color manipu- + lation; use of soft label keys; terminfo capabilities; and + access to low-level terminal-manipulation routines. + + To initialize the routines, the routine initscr or newterm must be called before any of the other routines that deal - with windows and screens are used. The routine endwin + with windows and screens are used. The routine endwin 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: - initscr(); cbreak(); noecho(); + initscr(); cbreak(); noecho(); Most programs would additionally use the sequence: - nonl(); - intrflush(stdscr, FALSE); - keypad(stdscr, TRUE); + nonl(); + intrflush(stdscr, FALSE); + keypad(stdscr, TRUE); - Before a curses program is run, the tab stops of the - terminal should be set and its initialization strings, if + Before a curses program is run, the tab stops of the ter- + minal should be set and its initialization strings, if defined, must be output. This can be done by executing - the tput init command after the shell environment variable - TERM has been exported. tset(1) is usually responsible - for doing this. [See terminfo(5) for further details.] - - The ncurses library permits manipulation of data - structures, called windows, which can be thought of as - two-dimensional arrays of characters representing all or - part of a CRT screen. A default window called stdscr, - which is the size of the terminal screen, is supplied. - Others may be created with newwin. - - Note that curses does not handle overlapping windows, - that's done by the panel(3x) library. This means that you - can either use stdscr or divide the screen into tiled - windows and not using stdscr at all. Mixing the two will + the tput init command after the shell environment variable + TERM has been exported. tset(1) is usually responsible + for doing this. [See terminfo(5) for further details.] + + The ncurses library permits manipulation of data struc- + tures, called windows, which can be thought of as two- + dimensional arrays of characters representing all or part + of a CRT screen. A default window called stdscr, which is + the size of the terminal screen, is supplied. Others may + be created with newwin. + + Note that curses does not handle overlapping windows, + that's done by the panel(3x) library. This means that you + can either use stdscr or divide the screen into tiled win- + dows and not using stdscr at all. Mixing the two will result in unpredictable, and undesired, effects. - Windows are referred to by variables declared as WINDOW *. + Windows are referred to by variables declared as WINDOW *. These data structures are manipulated with routines - described here and elsewhere in the ncurses manual pages. - Among which the most basic routines are move and addch. + described here and elsewhere in the ncurses manual pages. + Among those, the most basic routines are move and addch. More general versions of these routines are included with - names beginning with w, allowing the user to specify a - window. The routines not beginning with w affect stdscr.) + names beginning with w, allowing the user to specify a + window. The routines not beginning with w affect stdscr. - After using routines to manipulate a window, refresh is - called, telling curses to make the user's CRT screen look - like stdscr. The characters in a window are actually of - type chtype, (character and attribute data) so that other + After using routines to manipulate a window, refresh is + called, telling curses to make the user's CRT screen look + like stdscr. The characters in a window are actually of + type chtype, (character and attribute data) so that other information about the character may also be stored with each character. - Special windows called pads may also be manipulated. + Special windows called pads 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. + the screen and whose contents need not be completely dis- + played. 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, curses 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 - <curses.h>, such as A_REVERSE, ACS_HLINE, and KEY_LEFT. - - If the environment variables LINES and COLUMNS are set, or + attributes and colors may be supported, causing the char- + acters 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, curses 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 + <curses.h>, such as A_REVERSE, ACS_HLINE, and KEY_LEFT. + + If the environment variables LINES and COLUMNS are set, or if the program is executing in a window environment, line and column information in the environment will override - information read by terminfo. This would effect a program + information read by terminfo. This would effect a program running in an AT&T 630 layer, for example, where the size - of a screen is changeable (see ENVIRONMENT). + of a screen is changeable (see ENVIRONMENT). - If the environment variable TERMINFO is defined, any - program using curses checks for a local terminal - definition before checking in the standard place. For - example, if TERM is set to att4424, then the compiled - terminal definition is found in + If the environment variable TERMINFO is defined, any pro- + gram using curses checks for a local terminal definition + before checking in the standard place. For example, if + TERM is set to att4424, then the compiled terminal defini- + tion is found in - /usr/share/terminfo/a/att4424. + /usr/share/terminfo/a/att4424. - (The a is copied from the first letter of att4424 to avoid - creation of huge directories.) However, if TERMINFO is - set to $HOME/myterms, curses first checks + (The a is copied from the first letter of att4424 to avoid + creation of huge directories.) However, if TERMINFO is + set to $HOME/myterms, curses first checks - $HOME/myterms/a/att4424, + $HOME/myterms/a/att4424, and if that fails, it then checks - /usr/share/terminfo/a/att4424. + /usr/share/terminfo/a/att4424. This is useful for developing experimental definitions or - when write permission in /usr/share/terminfo is not - available. + when write permission in /usr/share/terminfo is not avail- + able. - The integer variables LINES and COLS are defined in - <curses.h> and will be filled in by initscr with the size - of the screen. The constants TRUE and FALSE have the - values 1 and 0, respectively. + The integer variables LINES and COLS are defined in + <curses.h> and will be filled in by initscr with the size + of the screen. The constants TRUE and FALSE have the val- + ues 1 and 0, respectively. - The curses routines also define the WINDOW * variable - curscr which is used for certain low-level operations like + The curses routines also define the WINDOW * variable + curscr which is used for certain low-level operations like clearing and redrawing a screen containing garbage. The - curscr can be used in only a few routines. - + curscr can be used in only a few routines. - Routine and Argument Names - Many curses routines have two or more versions. The - routines prefixed with w require a window argument. The - routines prefixed with p require a pad argument. Those - without a prefix generally use stdscr. + Routine and Argument Names + Many curses routines have two or more versions. The rou- + tines prefixed with w require a window argument. The rou- + tines prefixed with p require a pad argument. Those with- + out a prefix generally use stdscr. - The routines prefixed with mv require a y and x coordinate + The routines prefixed with mv require a y and x coordinate to move to before performing the appropriate action. The - mv routines imply a call to move before the call to the - other routine. The coordinate y always refers to the row - (of the window), and x always refers to the column. The + mv routines imply a call to move before the call to the + other routine. The coordinate y always refers to the row + (of the window), and x always refers to the column. The upper left-hand corner is always (0,0), not (1,1). - The routines prefixed with mvw take both a window argument - and x and y coordinates. The window argument is always + The routines prefixed with mvw take both a window argument + and x and y coordinates. The window argument is always specified before the coordinates. - In each case, win is the window affected, and pad is the - pad affected; win and pad are always pointers to type - WINDOW. + In each case, win is the window affected, and pad is the + pad affected; win and pad are always pointers to type WIN- + DOW. - Option setting routines require a Boolean flag bf with the - value TRUE or FALSE; bf is always of type bool. The - variables ch and attrs below are always of type chtype. - The types WINDOW, SCREEN, bool, and chtype are defined in - <curses.h>. The type TERMINAL is defined in <term.h>. + Option setting routines require a Boolean flag bf with the + value TRUE or FALSE; bf is always of type bool. The vari- + ables ch and attrs below are always of type chtype. The + types WINDOW, SCREEN, bool, and chtype are defined in + <curses.h>. The type TERMINAL is defined in <term.h>. All other arguments are integers. - - Routine Name Index - The following table lists each curses routine and the name + Routine Name Index + The following table lists each curses 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. - curses Routine Name Manual Page Name + + curses Routine Name Manual Page Name -------------------------------------------- - COLOR_PAIR curs_color(3x) - PAIR_NUMBER curs_attr(3x) - _nc_tracebits curs_trace(3x)* - _traceattr curs_trace(3x)* - _traceattr2 curs_trace(3x)* - _tracechar curs_trace(3x)* - _tracechtype curs_trace(3x)* - _tracechtype2 curs_trace(3x)* - _tracedump curs_trace(3x)* - _tracef curs_trace(3x)* - _tracemouse curs_trace(3x)* - addch curs_addch(3x) - addchnstr curs_addchstr(3x) - addchstr curs_addchstr(3x) - addnstr curs_addstr(3x) - addstr curs_addstr(3x) - assume_default_colors default_colors(3x)* - attr_get curs_attr(3x) - attr_off curs_attr(3x) - attr_on curs_attr(3x) - attr_set curs_attr(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) - chgat curs_attr(3x) - clear curs_clear(3x) - - clearok curs_outopts(3x) - clrtobot curs_clear(3x) - clrtoeol curs_clear(3x) - color_content curs_color(3x) - color_set curs_attr(3x) - copywin curs_overlay(3x) - curs_set curs_kernel(3x) - curses_version curs_extend(3x)* - def_prog_mode curs_kernel(3x) - def_shell_mode curs_kernel(3x) - define_key define_key(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) - getbkgd curs_bkgd(3x) - getch curs_getch(3x) - getmaxyx curs_getyx(3x) - getmouse curs_mouse(3x)* - getnstr curs_getstr(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) - keybound keybound(3x)* - keyname curs_util(3x) - keyok keyok(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) - mouse_trafo curs_mouse(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) - mvchgat curs_attr(3x) - mvcur curs_terminfo(3x) - mvdelch curs_delch(3x) - mvderwin curs_window(3x) - mvgetch curs_getch(3x) - mvgetnstr curs_getstr(3x) - mvgetstr curs_getstr(3x) - mvhline curs_border(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) - mvvline curs_border(3x) - mvwaddch curs_addch(3x) - mvwaddchnstr curs_addchstr(3x) - mvwaddchstr curs_addchstr(3x) - mvwaddnstr curs_addstr(3x) - - mvwaddstr curs_addstr(3x) - mvwchgat curs_attr(3x) - mvwdelch curs_delch(3x) - mvwgetch curs_getch(3x) - mvwgetnstr curs_getstr(3x) - mvwgetstr curs_getstr(3x) - mvwhline curs_border(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) - mvwvline curs_border(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_attr_off curs_slk(3x) - slk_attr_on curs_slk(3x) - slk_attr_set curs_slk(3x) - slk_attroff curs_slk(3x) - slk_attron curs_slk(3x) - slk_attrset curs_slk(3x) - slk_clear curs_slk(3x) - slk_color 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) - trace curs_trace(3x)* - typeahead curs_inopts(3x) - unctrl curs_util(3x) - - ungetch curs_getch(3x) - ungetmouse curs_mouse(3x)* - untouchwin curs_touch(3x) - use_default_colors default_colors(3x)* - use_env curs_util(3x) - use_extended_names curs_extend(3x)* - vidattr curs_terminfo(3x) - vidputs curs_terminfo(3x) - vline curs_border(3x) - vw_printw curs_printw(3x) - vw_scanw curs_scanw(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) - wattr_get curs_attr(3x) - wattr_off curs_attr(3x) - wattr_on curs_attr(3x) - wattr_set curs_attr(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) - wchgat curs_attr(3x) - wclear curs_clear(3x) - wclrtobot curs_clear(3x) - wclrtoeol curs_clear(3x) - wcolor_set curs_attr(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) - - wmouse_trafo curs_mouse(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) + COLOR_PAIR curs_color(3x) + PAIR_NUMBER curs_attr(3x) + _nc_tracebits curs_trace(3x)* + _traceattr curs_trace(3x)* + _traceattr2 curs_trace(3x)* + _tracechar curs_trace(3x)* + _tracechtype curs_trace(3x)* + _tracechtype2 curs_trace(3x)* + _tracedump curs_trace(3x)* + _tracef curs_trace(3x)* + _tracemouse curs_trace(3x)* + + add_wch curs_add_wch(3x) + add_wchnstr curs_add_wchstr(3x) + add_wchstr curs_add_wchstr(3x) + addch curs_addch(3x) + addchnstr curs_addchstr(3x) + addchstr curs_addchstr(3x) + addnstr curs_addstr(3x) + addnwstr curs_addwstr(3x) + addstr curs_addstr(3x) + addwstr curs_addwstr(3x) + assume_default_colors default_colors(3x)* + attr_get curs_attr(3x) + attr_off curs_attr(3x) + attr_on curs_attr(3x) + attr_set curs_attr(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) + bkgrnd curs_bkgrnd(3x) + bkgrndset curs_bkgrnd(3x) + border curs_border(3x) + border_set curs_border_set(3x) + box curs_border(3x) + box_set curs_border_set(3x) + can_change_color curs_color(3x) + cbreak curs_inopts(3x) + chgat curs_attr(3x) + clear curs_clear(3x) + clearok curs_outopts(3x) + clrtobot curs_clear(3x) + clrtoeol curs_clear(3x) + color_content curs_color(3x) + color_set curs_attr(3x) + copywin curs_overlay(3x) + curs_set curs_kernel(3x) + curses_version curs_extend(3x)* + def_prog_mode curs_kernel(3x) + def_shell_mode curs_kernel(3x) + define_key define_key(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) + echo_wchar curs_add_wch(3x) + echochar curs_addch(3x) + endwin curs_initscr(3x) + erase curs_clear(3x) + erasechar curs_termattrs(3x) + erasewchar curs_termattrs(3x) + filter curs_util(3x) + flash curs_beep(3x) + flushinp curs_util(3x) + get_wch curs_get_wch(3x) + get_wstr curs_get_wstr(3x) + getbegyx curs_getyx(3x) + + getbkgd curs_bkgd(3x) + getbkgrnd curs_bkgrnd(3x) + getcchar curs_getcchar(3x) + getch curs_getch(3x) + getmaxyx curs_getyx(3x) + getmouse curs_mouse(3x)* + getn_wstr curs_get_wstr(3x) + getnstr curs_getstr(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) + hline_set curs_border_set(3x) + idcok curs_outopts(3x) + idlok curs_outopts(3x) + immedok curs_outopts(3x) + in_wch curs_in_wch(3x) + in_wchnstr curs_in_wchstr(3x) + in_wchstr curs_in_wchstr(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) + innwstr curs_inwstr(3x) + ins_nwstr curs_ins_wstr(3x) + ins_wch curs_ins_wch(3x) + ins_wstr curs_ins_wstr(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) + inwstr curs_inwstr(3x) + is_linetouched curs_touch(3x) + is_wintouched curs_touch(3x) + isendwin curs_initscr(3x) + key_defined key_defined(3x)* + key_name curs_util(3x) + keybound keybound(3x)* + keyname curs_util(3x) + keyok keyok(3x)* + keypad curs_inopts(3x) + killchar curs_termattrs(3x) + killwchar curs_termattrs(3x) + leaveok curs_outopts(3x) + longname curs_termattrs(3x) + mcprint curs_print(3x)* + meta curs_inopts(3x) + mouse_trafo curs_mouse(3x)* + mouseinterval curs_mouse(3x)* + mousemask curs_mouse(3x)* + move curs_move(3x) + mvadd_wch curs_add_wch(3x) + + mvadd_wchnstr curs_add_wchstr(3x) + mvadd_wchstr curs_add_wchstr(3x) + mvaddch curs_addch(3x) + mvaddchnstr curs_addchstr(3x) + mvaddchstr curs_addchstr(3x) + mvaddnstr curs_addstr(3x) + mvaddnwstr curs_addwstr(3x) + mvaddstr curs_addstr(3x) + mvaddwstr curs_addwstr(3x) + mvchgat curs_attr(3x) + mvcur curs_terminfo(3x) + mvdelch curs_delch(3x) + mvderwin curs_window(3x) + mvget_wch curs_get_wch(3x) + mvget_wstr curs_get_wstr(3x) + mvgetch curs_getch(3x) + mvgetn_wstr curs_get_wstr(3x) + mvgetnstr curs_getstr(3x) + mvgetstr curs_getstr(3x) + mvhline curs_border(3x) + mvhline_set curs_border_set(3x) + mvin_wch curs_in_wch(3x) + mvin_wchnstr curs_in_wchstr(3x) + mvin_wchstr curs_in_wchstr(3x) + mvinch curs_inch(3x) + mvinchnstr curs_inchstr(3x) + mvinchstr curs_inchstr(3x) + mvinnstr curs_instr(3x) + mvinnwstr curs_inwstr(3x) + mvins_nwstr curs_ins_wstr(3x) + mvins_wch curs_ins_wch(3x) + mvins_wstr curs_ins_wstr(3x) + mvinsch curs_insch(3x) + mvinsnstr curs_insstr(3x) + mvinsstr curs_insstr(3x) + mvinstr curs_instr(3x) + mvinwstr curs_inwstr(3x) + mvprintw curs_printw(3x) + mvscanw curs_scanw(3x) + mvvline curs_border(3x) + mvvline_set curs_border_set(3x) + mvwadd_wch curs_add_wch(3x) + mvwadd_wchnstr curs_add_wchstr(3x) + mvwadd_wchstr curs_add_wchstr(3x) + mvwaddch curs_addch(3x) + mvwaddchnstr curs_addchstr(3x) + mvwaddchstr curs_addchstr(3x) + mvwaddnstr curs_addstr(3x) + mvwaddnwstr curs_addwstr(3x) + mvwaddstr curs_addstr(3x) + mvwaddwstr curs_addwstr(3x) + mvwchgat curs_attr(3x) + mvwdelch curs_delch(3x) + mvwget_wch curs_get_wch(3x) + mvwget_wstr curs_get_wstr(3x) + mvwgetch curs_getch(3x) + mvwgetn_wstr curs_get_wstr(3x) + mvwgetnstr curs_getstr(3x) + mvwgetstr curs_getstr(3x) + mvwhline curs_border(3x) + mvwhline_set curs_border_set(3x) + mvwin curs_window(3x) + mvwin_wch curs_in_wch(3x) + mvwin_wchnstr curs_in_wchstr(3x) + mvwin_wchstr curs_in_wchstr(3x) + + mvwinch curs_inch(3x) + mvwinchnstr curs_inchstr(3x) + mvwinchstr curs_inchstr(3x) + mvwinnstr curs_instr(3x) + mvwinnwstr curs_inwstr(3x) + mvwins_nwstr curs_ins_wstr(3x) + mvwins_wch curs_ins_wch(3x) + mvwins_wstr curs_ins_wstr(3x) + mvwinsch curs_insch(3x) + mvwinsnstr curs_insstr(3x) + mvwinsstr curs_insstr(3x) + mvwinstr curs_instr(3x) + mvwinwstr curs_inwstr(3x) + mvwprintw curs_printw(3x) + mvwscanw curs_scanw(3x) + mvwvline curs_border(3x) + mvwvline_set curs_border_set(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) + setcchar curs_getcchar(3x) + setscrreg curs_outopts(3x) + setsyx curs_kernel(3x) + setterm curs_terminfo(3x) + setupterm curs_terminfo(3x) + slk_attr curs_slk(3x)* + + slk_attr_off curs_slk(3x) + slk_attr_on curs_slk(3x) + slk_attr_set curs_slk(3x) + slk_attroff curs_slk(3x) + slk_attron curs_slk(3x) + slk_attrset curs_slk(3x) + slk_clear curs_slk(3x) + slk_color 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) + term_attrs curs_termattrs(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) + trace curs_trace(3x)* + typeahead curs_inopts(3x) + unctrl curs_util(3x) + unget_wch curs_get_wch(3x) + ungetch curs_getch(3x) + ungetmouse curs_mouse(3x)* + untouchwin curs_touch(3x) + use_default_colors default_colors(3x)* + use_env curs_util(3x) + use_extended_names curs_extend(3x)* + vid_attr curs_terminfo(3x) + vid_puts curs_terminfo(3x) + vidattr curs_terminfo(3x) + vidputs curs_terminfo(3x) + vline curs_border(3x) + vline_set curs_border_set(3x) + vw_printw curs_printw(3x) + vw_scanw curs_scanw(3x) + vwprintw curs_printw(3x) + vwscanw curs_scanw(3x) + wadd_wch curs_add_wch(3x) + wadd_wchnstr curs_add_wchstr(3x) + wadd_wchstr curs_add_wchstr(3x) + waddch curs_addch(3x) + waddchnstr curs_addchstr(3x) + waddchstr curs_addchstr(3x) + waddnstr curs_addstr(3x) + + waddnwstr curs_addwstr(3x) + waddstr curs_addstr(3x) + waddwstr curs_addwstr(3x) + wattr_get curs_attr(3x) + wattr_off curs_attr(3x) + wattr_on curs_attr(3x) + wattr_set curs_attr(3x) + wattroff curs_attr(3x) + wattron curs_attr(3x) + wattrset curs_attr(3x) + wbkgd curs_bkgd(3x) + wbkgdset curs_bkgd(3x) + wbkgrnd curs_bkgrnd(3x) + wbkgrndset curs_bkgrnd(3x) + wborder curs_border(3x) + wborder_set curs_border_set(3x) + wchgat curs_attr(3x) + wclear curs_clear(3x) + wclrtobot curs_clear(3x) + wclrtoeol curs_clear(3x) + wcolor_set curs_attr(3x) + wcursyncup curs_window(3x) + wdelch curs_delch(3x) + wdeleteln curs_deleteln(3x) + wecho_wchar curs_add_wch(3x) + wechochar curs_addch(3x) + wenclose curs_mouse(3x)* + werase curs_clear(3x) + wget_wch curs_get_wch(3x) + wget_wstr curs_get_wstr(3x) + wgetbkgrnd curs_bkgrnd(3x) + wgetch curs_getch(3x) + wgetn_wstr curs_get_wstr(3x) + wgetnstr curs_getstr(3x) + wgetstr curs_getstr(3x) + whline curs_border(3x) + whline_set curs_border_set(3x) + win_wch curs_in_wch(3x) + win_wchnstr curs_in_wchstr(3x) + win_wchstr curs_in_wchstr(3x) + winch curs_inch(3x) + winchnstr curs_inchstr(3x) + winchstr curs_inchstr(3x) + winnstr curs_instr(3x) + winnwstr curs_inwstr(3x) + wins_nwstr curs_ins_wstr(3x) + wins_wch curs_ins_wch(3x) + wins_wstr curs_ins_wstr(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) + winwstr curs_inwstr(3x) + wmouse_trafo curs_mouse(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) + wunctrl curs_util(3x) + wvline curs_border(3x) + wvline_set curs_border_set(3x)
- Routines that return an integer return ERR upon failure - and an integer value other than ERR upon successful - completion, unless otherwise noted in the routine - descriptions. - - All macros return the value of the w version, except - setscrreg, wsetscrreg, getyx, getbegyx, getmaxyx. The - return values of setscrreg, wsetscrreg, getyx, getbegyx, - and getmaxyx are undefined (i.e., these should not be used + Routines that return an integer return ERR upon failure + and an integer value other than ERR upon successful com- + pletion, unless otherwise noted in the routine descrip- + tions. + + All macros return the value of the w version, except + setscrreg, wsetscrreg, getyx, getbegyx, and getmaxyx. The + return values of setscrreg, wsetscrreg, getyx, getbegyx, + and getmaxyx are undefined (i.e., these should not be used as the right-hand side of assignment statements). - Routines that return pointers return NULL on error. + Routines that return pointers return NULL on error.
- The following environment symbols are useful for - customizing the runtime behavior of the ncurses library. - The most important ones have been already discussed in - detail. + The following environment symbols are useful for customiz- + ing the runtime behavior of the ncurses library. The most + important ones have been already discussed in detail. BAUDRATE - The debugging library checks this environment symbol + The debugging library checks this environment symbol when the application has redirected output to a file. - The symbol's numeric value is used for the baudrate. - If no value is found ncurses uses 9600. This allows - testers to construct repeatable test-cases that take + The symbol's numeric value is used for the baudrate. + If no value is found, ncurses uses 9600. This allows + testers to construct repeatable test-cases that take into account costs that depend on baudrate. CC When set, change occurrences of the command_character - (i.e., the cmdch capability) of the loaded terminfo - entries to the value of this symbol. Very few - terminfo entries provide this feature. + (i.e., the cmdch capability) of the loaded terminfo + entries to the value of this symbol. Very few ter- + minfo entries provide this feature. COLUMNS Specify the width of the screen in characters. - Applications running in a windowing environment - usually are able to obtain the width of the window in - which they are executing. If neither the $COLUMNS - value nor the terminal's screen size is available, - ncurses uses the size which may be specified in the - terminfo database (i.e., the cols capability). - - It is important that your application use a correct - size for the screen. However, this is not always - possible because your application may be running on a - host which does not honor NAWS (Negotiations About - Window Size), or because you are temporarily running - as another user. - - Either COLUMNS or LINES symbols may be specified - independently. This is mainly useful to circumvent - legacy misfeatures of terminal descriptions, e.g., + Applications running in a windowing environment usu- + ally are able to obtain the width of the window in + which they are executing. If neither the COLUMNS + value nor the terminal's screen size is available, + ncurses uses the size which may be specified in the + terminfo database (i.e., the cols capability). + + It is important that your application use a correct + size for the screen. This is not always possible + because your application may be running on a host + which does not honor NAWS (Negotiations About Window + Size), or because you are temporarily running as + another user. However, setting COLUMNS and/or LINES + overrides the library's use of the screen size + obtained from the operating system. + + Either COLUMNS or LINES symbols may be specified + independently. This is mainly useful to circumvent + legacy misfeatures of terminal descriptions, e.g., xterm which commonly specifies a 65 line screen. For - best results, lines and cols should not be specified + best results, lines and cols should not be specified in a terminal description for terminals which are run as emulations. - Use the use_env function to disable this feature. + Use the use_env function to disable all use of exter- + nal environment (including system calls) to determine + the screen size. ESCDELAY - Specifies the total time, in milliseconds, for which - ncurses will await a character sequence, e.g., a - function key. The default value, 1000 milliseconds, - is enough for most uses. However, it is made a - variable to accommodate unusual applications. + Specifies the total time, in milliseconds, for which + ncurses will await a character sequence, e.g., a + function key. The default value, 1000 milliseconds, + is enough for most uses. However, it is made a vari- + able to accommodate unusual applications. The most common instance where you may wish to change - this value is to work with slow hosts, e.g., running - on a network. If the host cannot read characters - rapidly enough, it will have the same effect as if - the terminal did not send characters rapidly enough. + this value is to work with slow hosts, e.g., running + on a network. If the host cannot read characters + rapidly enough, it will have the same effect as if + the terminal did not send characters rapidly enough. The library will still see a timeout. - Note that xterm mouse events are built up from - character sequences received from the xterm. If your + Note that xterm mouse events are built up from char- + acter sequences received from the xterm. If your application makes heavy use of multiple-clicking, you - may wish to lengthen this default value because the - timeout applies to the composed multi-click event as + may wish to lengthen this default value because the + timeout applies to the composed multi-click event as well as the individual clicks. - HOME Tells ncurses where your home directory is. That is + In addition to the environment variable, this imple- + mentation provides a global variable with the same + name. Portable applications should not rely upon the + presence of ESCDELAY in either form, but setting the + environment variable rather than the global variable + does not create problems when compiling an applica- + tion. + + HOME Tells ncurses where your home directory is. That is where it may read and write auxiliary terminal descriptions: @@ -604,12 +754,12 @@ $HOME/.terminfo LINES - Like COLUMNS, specify the height of the screen in - characters. See COLUMNS for a detailed description. + Like COLUMNS, specify the height of the screen in + characters. See COLUMNS for a detailed description. MOUSE_BUTTONS_123 This applies only to the OS/2 EMX port. It specifies - the order of buttons on the mouse. OS/2 numbers a + the order of buttons on the mouse. OS/2 numbers a 3-button mouse inconsistently from other platforms: 1 = left @@ -617,27 +767,53 @@ 3 = middle. This symbol lets you customize the mouse. The symbol - must be three numeric digits 1-3 in any order, e.g., - 123 or 321. If it is not specified, ncurses uses + must be three numeric digits 1-3 in any order, e.g., + 123 or 321. If it is not specified, ncurses uses 132. + NCURSES_ASSUMED_COLORS + Override the compiled-in assumption that the termi- + nal's default colors are white-on-black (see + assume_default_colors(3x)). You may set the fore- + ground and background color values with this environ- + ment variable by proving a 2-element list: + foreground,background. For example, to tell ncurses + to not assume anything about the colors, set this to + "-1,-1". To make it green-on-black, set it to "2,0". + Any positive value from zero to the terminfo max_col- + ors value is allowed. + + NCURSES_NO_HARD_TABS + Ncurses may use tabs as part of the cursor movement + optimization. In some cases, your terminal driver + may not handle these properly. Set this environment + variable to disable the feature. You can also adjust + your stty settings to avoid the problem. + + NCURSES_NO_MAGIC_COOKIES + Some terminals use a magic-cookie feature which + requires special handling to make highlighting and + other video attributes display properly. You can + suppress the highlighting entirely for these termi- + nals by setting this environment variable. + NCURSES_NO_PADDING Most of the terminal descriptions in the terminfo database are written for real "hardware" terminals. Many people use terminal emulators which run in a - windowing environment and use curses-based - applications. Terminal emulators can duplicate all - of the important aspects of a hardware terminal, but - they do not have the same limitations. The chief - limitation of a hardware terminal from the standpoint - of your application is the management of dataflow, - i.e., timing. Unless a hardware terminal is - interfaced into a terminal concentrator (which does - flow control), it (or your application) must manage - dataflow, preventing overruns. The cheapest solution - (no hardware cost) is for your program to do this by - pausing after operations that the terminal does - slowly, such as clearing the display. + windowing environment and use curses-based applica- + tions. Terminal emulators can duplicate all of the + important aspects of a hardware terminal, but they do + not have the same limitations. The chief limitation + of a hardware terminal from the standpoint of your + application is the management of dataflow, i.e., tim- + ing. Unless a hardware terminal is interfaced into a + terminal concentrator (which does flow control), it + (or your application) must manage dataflow, prevent- + ing overruns. The cheapest solution (no hardware + cost) is for your program to do this by pausing after + operations that the terminal does slowly, such as + clearing the display. As a result, many terminal descriptions (including the vt100) have delay times embedded. You may wish @@ -646,53 +822,72 @@ Set the NCURSES_NO_PADDING symbol to disable all but mandatory padding. Mandatory padding is used as a - part of special control sequences such as flash. + part of special control sequences such as flash. NCURSES_NO_SETBUF - Normally ncurses enables buffered output during - terminal initialization. This is done (as in SVr4 - curses) for performance reasons. For testing - purposes, both of ncurses and certain applications, - this feature is made optional. Setting the + Normally ncurses enables buffered output during ter- + minal initialization. This is done (as in SVr4 + curses) for performance reasons. For testing pur- + poses, both of ncurses and certain applications, this + feature is made optional. Setting the NCURSES_NO_SETBUF variable disables output buffering, leaving the output in the original (usually line buffered) mode. + NCURSES_NO_UTF8_ACS + During initialization, the ncurses library checks for + special cases where VT100 line-drawing (and the cor- + responding alternate character set capabilities) + described in the terminfo are known to be missing. + Specifically, when running in a UTF-8 locale, the + Linux console emulator and the GNU screen program + ignore these. Ncurses checks the TERM environment + variable for these. For other special cases, you + should set this environment variable. Doing this + tells ncurses to use Unicode values which correspond + to the VT100 line-drawing glyphs. That works for the + special cases cited, and is likely to work for termi- + nal emulators. + + When setting this variable, you should set it to a + nonzero value. Setting it to zero (or to a nonnum- + ber) disables the special check for Linux and screen. + NCURSES_TRACE - During initialization, the ncurses debugging library - checks the NCURSES_TRACE symbol. If it is defined, - to a numeric value, ncurses calls the trace function, + During initialization, the ncurses debugging library + checks the NCURSES_TRACE symbol. If it is defined, + to a numeric value, ncurses calls the trace function, using that value as the argument. - The argument values, which are defined in curses.h, - provide several types of information. When running - with traces enabled, your application will write the - file trace to the current directory. + The argument values, which are defined in curses.h, + provide several types of information. When running + with traces enabled, your application will write the + file trace to the current directory. - TERM Denotes your terminal type. Each terminal type is + TERM Denotes your terminal type. Each terminal type is distinct, though many are similar. TERMCAP - If the ncurses library has been configured with - termcap support, ncurses will check for a terminal's + If the ncurses library has been configured with term- + cap support, ncurses will check for a terminal's description in termcap form if it is not available in the terminfo database. - The TERMCAP symbol contains either a terminal - description (with newlines stripped out), or a file - name telling where the information denoted by the - TERM symbol exists. In either case, setting it - directs ncurses to ignore the usual place for this + The TERMCAP symbol contains either a terminal + description (with newlines stripped out), or a file + name telling where the information denoted by the + TERM symbol exists. In either case, setting it + directs ncurses to ignore the usual place for this information, e.g., /etc/termcap. TERMINFO - Overrides the directory in which ncurses searches for + Overrides the directory in which ncurses searches for your terminal description. This is the simplest, but - not the only way to change the list of directories. + not the only way to change the list of directories. The complete list of directories in order follows: - - the last directory to which ncurses wrote, if any, - is searched first. + - the last directory to which ncurses wrote, if any, + is searched first - the directory specified by the TERMINFO symbol @@ -705,19 +900,20 @@ /usr/share/terminfo TERMINFO_DIRS - Specifies a list of directories to search for - terminal descriptions. The list is separated by - colons (i.e., ":"). All of the terminal descriptions - are in terminfo form, which makes a subdirectory - named for the first letter of the terminal names - therein. + Specifies a list of directories to search for termi- + nal descriptions. The list is separated by colons + (i.e., ":") on Unix, semicolons on OS/2 EMX. All of + the terminal descriptions are in terminfo form, which + makes a subdirectory named for the first letter of + the terminal names therein. TERMPATH - If TERMCAP does not hold a file name then ncurses - checks the TERMPATH symbol. This is a list of - filenames separated by colons (i.e., ":"). If the - TERMPATH symbol is not set, ncurses looks in the - files /etc/termcap, /usr/share/misc/termcap and + If TERMCAP does not hold a file name then ncurses + checks the TERMPATH symbol. This is a list of + filenames separated by spaces or colons (i.e., ":") + on Unix, semicolons on OS/2 EMX. If the TERMPATH + symbol is not set, ncurses looks in the files + /etc/termcap, /usr/share/misc/termcap and $HOME/.termcap, in that order. The library may be configured to disregard the following @@ -726,169 +922,190 @@ $TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as $HOME. ++
+ Several different configurations are possible, depending + on the configure script options used when building + ncurses. There are a few main options whose effects are + visible to the applications developer using ncurses: + + --disable-overwrite + The standard include for ncurses is as noted in SYN- + OPSIS: + + #include <curses.h> + + This option is used to avoid filename conflicts when + ncurses is not the main implementation of curses of + the computer. If ncurses is installed disabling + overwrite, it puts its headers in a subdirectory, + e.g., + + #include <ncurses/curses.h> + + It also omits a symbolic link which would allow you + to use -lcurses to build executables. + + --enable-widec + The configure script renames the library and (if the + --disable-overwrite option is used) puts the header + files in a different subdirectory. All of the + library names have a "w" appended to them, i.e., + instead of + + -lncurses + + you link with + + -lncursesw + + You must also define _XOPEN_SOURCE_EXTENDED when com- + piling for the wide-character library to use the + extended (wide-character) functions. The curses.h + file which is installed for the wide-character + library is designed to be compatible with the normal + library's header. Only the size of the WINDOW struc- + ture differs, and very few applications require more + than a pointer to WINDOWs. If the headers are + installed allowing overwrite, the wide-character + library's headers should be installed last, to allow + applications to be built using either library from + the same set of headers. + + --with-shared + + --with-normal + + --with-debug + + --with-profile + The shared and normal (static) library names differ + by their suffixes, e.g., libncurses.so and + libncurses.a. The debug and profiling libraries add + a "_g" and a "_p" to the root names respectively, + e.g., libncurses_g.a and libncurses_p.a. + + --with-trace + The trace function normally resides in the debug + library, but it is sometimes useful to configure this + in the shared library. Configure scripts should + check for the function's existence rather than assum- + ing it is always in the debug library. + +
/usr/share/tabset directory containing initialization files for the - terminal capability database /usr/share/terminfo - terminal capability database + terminal capability database /usr/share/terminfo ter- + minal capability database
- terminfo(5) and 3x pages whose names begin "curs_" for - detailed routine descriptions. + terminfo(5) and related pages whose names begin "curs_" + for detailed routine descriptions.
- The ncurses library can be compiled with an option - (-DUSE_GETCAP) that falls back to the old-style - /etc/termcap file if the terminal setup code cannot find a - terminfo entry corresponding to TERM. Use of this feature - is not recommended, as it essentially includes an entire - termcap compiler in the ncurses startup code, at - significant cost in core and startup cycles. - - The ncurses library includes facilities for capturing + The ncurses library can be compiled with an option + (-DUSE_GETCAP) that falls back to the old-style /etc/term- + cap file if the terminal setup code cannot find a terminfo + entry corresponding to TERM. Use of this feature is not + recommended, as it essentially includes an entire termcap + compiler in the ncurses startup code, at significant cost + in core and startup cycles. + + The ncurses library includes facilities for capturing mouse events on certain terminals (including xterm). See - the curs_mouse(3x) manual page for details. + the curs_mouse(3x) manual page for details. - The ncurses library includes facilities for responding to + The ncurses library includes facilities for responding to window resizing events, e.g., when running in an xterm. - See the resizeterm(3x) and wresize(3x) manual pages for + See the resizeterm(3x) and wresize(3x) manual pages for details. In addition, the library may be configured with a SIGWINCH handler. - The ncurses library extends the fixed set of function key + The ncurses library extends the fixed set of function key capabilities of terminals by allowing the application designer to define additional key sequences at runtime. - See the define_key(3x) and keyok(3x) manual pages for - details. + See the define_key(3x) key_defined(3x), and keyok(3x) man- + ual pages for details. - The ncurses library can exploit the capabilities of - terminals which implement the ISO-6429 SGR 39 and SGR 49 - controls, which allow an application to reset the terminal - to its original foreground and background colors. From - the users' perspective, the application is able to draw - colored text on a background whose color is set - independently, providing better control over color - contrasts. See the use_default_colors(3x) manual page for - details. - The ncurses library includes a function for directing - application output to a printer attached to the terminal - device. See the curs_print(3x) manual page for details. + The ncurses library can exploit the capabilities of termi- + nals which implement the ISO-6429 SGR 39 and SGR 49 con- + trols, which allow an application to reset the terminal to + its original foreground and background colors. From the + users' perspective, the application is able to draw col- + ored text on a background whose color is set indepen- + dently, providing better control over color contrasts. + See the default_colors(3x) manual page for details. + + The ncurses library includes a function for directing + application output to a printer attached to the terminal + device. See the curs_print(3x) manual page for details.
- The ncurses 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: add_wch, add_wchnstr, add_wchstr, - addnwstr, addwstr, bkgrnd, bkgrndset, border_set, box_set, - echo_wchar, erasewchar, get_wch, get_wstr, getbkgrnd, - getcchar, getn_wstr, getwchtype, hline_set, in_wch, - in_wchnstr, in_wchstr, innwstr, ins_nwstr, ins_wch, - ins_wstr, inwchnstr, inwchstr, inwstr, key_name, - killwchar, mvadd_wch, mvadd_wchnstr, mvadd_wchstr, - mvaddnwstr, mvaddwstr, mvget_wch, mvget_wstr, mvgetn_wstr, - mvhline_set, mvin_wch, mvinnwstr, mvins_nwstr, mvins_wch, - mvins_wstr, mvinwchnstr, mvinwchstr, mvinwchstr, mvinwstr, - mvvline_set, mvwadd_wch, mvwadd_wchnstr, mvwadd_wchstr, - mvwaddnwstr, mvwaddwstr, mvwget_ch, mvwget_wch, - mvwget_wstr, mvwgetn_wstr, mvwhline_set, mvwin_wch, - mvwin_wchnstr, mvwin_wchstr, mvwinnwstr, mvwins_nwstr, - mvwins_wch, mvwins_wstr, mvwinwchnstr. mvwinwstr, - mvwvline_set, pecho_wchar, setcchar, slk_wset, term_attrs, - unget_wch, vhline_set, vid_attr, vid_puts, vline_set, - wadd_wch, wadd_wchnstr, wadd_wchstr, waddnwstr, waddwstr, - waddwstr, wbkgrnd, wbkgrndset, wbkgrndset, wborder_set, - wecho_wchar, wecho_wchar, wget_wch, wget_wstr, wgetbkgrnd, - wgetn_wstr, whline_set, win_wch, win_wchnstr, win_wchstr, - winnwstr, wins_nwstr, wins_wch, wins_wstr, winwchnstr, - winwchstr, winwstr, wunctrl, wvline_set, - - A small number of local differences (that is, individual - differences between the XSI Curses and ncurses calls) are - described in PORTABILITY sections of the library man + The ncurses library is intended to be BASE-level confor- + mant with the XSI Curses standard. The EXTENDED XSI + Curses functionality (including color support) is sup- + ported. + + A small number of local differences (that is, individual + differences between the XSI Curses and ncurses calls) are + described in PORTABILITY sections of the library man pages. - The routine has_key is not part of XPG4, nor is it present - in SVr4. See the curs_getch(3x) manual page for details. + The routine has_key is not part of XPG4, nor is it present + in SVr4. See the curs_getch(3x) manual page for details. - The routine slk_attr is not part of XPG4, nor is it - present in SVr4. See the curs_slk(3x) manual page for + The routine slk_attr is not part of XPG4, nor is it + present in SVr4. See the curs_slk(3x) manual page for details. - The routines getmouse, mousemask, ungetmouse, - mouseinterval, and wenclose relating to mouse interfacing - are not part of XPG4, nor are they present in SVr4. See - the curs_mouse(3x) manual page for details. + The routines getmouse, mousemask, ungetmouse, mouseinter- + val, and wenclose relating to mouse interfacing are not + part of XPG4, nor are they present in SVr4. See the + curs_mouse(3x) manual page for details. - The routine mcprint was not present in any previous curses - implementation. See the curs_print(3x) manual page for + The routine mcprint was not present in any previous curses + implementation. See the curs_print(3x) manual page for details. - The routine wresize is not part of XPG4, nor is it present - in SVr4. See the wresize(3x) manual page for details. - - In historic curses versions, delays embedded in the - capabilities cr, ind, cub1, ff and tab 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. - - In the XSI standard and SVr4 manual pages, many entry - points have prototype arguments of the for char *const (or - cchar_t *const, or wchar_t *const, or void *const). - 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 const char *x is a modifiable pointer to - unmodifiable data, but char *const x' is an unmodifiable - pointer to modifiable data. Given that C passes arguments - by value, <type> *const as a formal type is at best - dubious. Some compilers choke on the prototypes. - Therefore, in this implementation, they have been changed - to const <type> * globally. + + The routine wresize is not part of XPG4, nor is it present + in SVr4. See the wresize(3x) manual page for details. + + In historic curses versions, delays embedded in the capa- + bilities cr, ind, cub1, ff and tab activated corresponding + delay bits in the UNIX tty driver. In this implementa- + tion, 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.
- The header file <curses.h> automatically includes the - header files <stdio.h> and <unctrl.h>. + The header file <curses.h> automatically includes the + header files <stdio.h> and <unctrl.h>. - If standard output from a ncurses 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. + If standard output from a ncurses program is re-directed + to something which is not a tty, screen updates will be + directed to standard error. This was an undocumented fea- + ture of AT&T System V Release 3 curses.
- Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey. + Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey. Based on pcurses by Pavel Curtis. - - - - - - - - - - - - - - + ncurses(3x)