X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;ds=inline;f=doc%2Fhtml%2Fman%2Fncurses.3x.html;h=3e409223c43285a98f3225215bb80622cec62350;hb=a8e3f06ac309504143cd56ac9ec55889bfdf4914;hp=e7374652ec5d4b91113f6c619b07a5637bdc204f;hpb=0948e2c7ac34642a1f8a3a85000933bcbb258cff;p=ncurses.git diff --git a/doc/html/man/ncurses.3x.html b/doc/html/man/ncurses.3x.html index e7374652..3e409223 100644 --- a/doc/html/man/ncurses.3x.html +++ b/doc/html/man/ncurses.3x.html @@ -1,8 +1,7 @@ - +
+ +- ncurses(3x) ncurses(3x) --
+
ncurses - CRT screen handling and optimization package --
+
#include <curses.h> --
+
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 clas- sic curses, which has been discontinued. This describes - ncurses version 5.9 (patch 20140816). + ncurses version 6.0 (patch 20170422). The ncurses library emulates the curses library of System V Release 4 UNIX, and XPG4 (X/Open Portability Guide) @@ -96,41 +93,42 @@ lation; use of soft label keys; terminfo capabilities; and access to low-level terminal-manipulation routines. + +
The library uses the locale which the calling program has initialized. That is normally done with setlocale: - setlocale(LC_ALL, ""); - - If the locale is not initialized, the library assumes that - characters are printable as in ISO-8859-1, to work with - certain legacy programs. You should initialize the locale - and not rely on specific details of the library when the - locale has not been setup. + setlocale(LC_ALL, ""); + If the locale is not initialized, the library assumes that + characters are printable as in ISO-8859-1, to work with cer- + tain legacy programs. You should initialize the locale and + not rely on specific details of the library when the locale + has not been setup. The function initscr or newterm must be called to initial- ize the library 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(3x) must be called before exiting. To get character-at-a-time input without echoing (most interactive, screen oriented programs want this), the fol- lowing sequence should be used: - initscr(); cbreak(); noecho(); - - Most programs would additionally use the sequence: + initscr(); cbreak(); noecho(); + Most programs would additionally use the sequence: 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 defined, must + be output. This can be done by executing the tput init com- + mand after the shell environment variable TERM has been + exported. tset(1) is usually responsible for doing this. + [See terminfo(5) for further details.] - 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 struc- tures, called windows, which can be thought of as two- dimensional arrays of characters representing all or part @@ -152,12 +150,12 @@ 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 - information about the character may also be stored with - each character. + After using routines to manipulate a window, refresh(3x) + 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. These are windows which are not constrained to the size of @@ -175,6 +173,8 @@ 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 @@ -188,569 +188,578 @@ TERM is set to att4424, then the compiled terminal defini- tion is found in - /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 + /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 $HOME/myterms/a/att4424, + and if that fails, it then checks - 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. - This is useful for developing experimental definitions or - 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 + 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 + 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 + clearing and redrawing a screen containing garbage. The curscr can be used in only a few routines. - Routine and Argument Names - Many curses routines have two or more versions. The rou- + +
+ 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 - 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 + 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 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 + 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 + 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. Most of - the data types used in the library routines, such as WIN- - DOW, SCREEN, bool, and chtype are defined in <curses.h>. - Types used for the terminfo routines such as TERMINAL are + value TRUE or FALSE; bf is always of type bool. Most of + the data types used in the library routines, such as WIN- + DOW, SCREEN, bool, and chtype are defined in <curses.h>. + Types used for the terminfo routines such as TERMINAL are defined in <term.h>. - This manual page describes functions which may appear in - any configuration of the library. There are two common + This manual page describes functions which may appear in + any configuration of the library. There are two common configurations of the library: - ncurses - the "normal" library, which handles 8-bit - characters. The normal (8-bit) library stores - characters combined with attributes in chtype - data. - - Attributes alone (no corresponding character) - may be stored in chtype or the equivalent - attr_t data. In either case, the data is - stored in something like an integer. - - Each cell (row and column) in a WINDOW is - stored as a chtype. - - ncursesw - the so-called "wide" library, which handles - multibyte characters (see the section on - ALTERNATE CONFIGURATIONS). The "wide" library - includes all of the calls from the "normal" - library. It adds about one third more calls - using data types which store multibyte charac- - ters: - - cchar_t - corresponds to chtype. However it is a - structure, because more data is stored - than can fit into an integer. The char- - acters are large enough to require a full - integer value - and there may be more - than one character per cell. The video - attributes and color are stored in sepa- - rate fields of the structure. - - Each cell (row and column) in a WINDOW is - stored as a cchar_t. - - wchar_t - stores a "wide" character. Like chtype, - this may be an integer. - - wint_t - stores a wchar_t or WEOF - not the same, - though both may have the same size. - - The "wide" library provides new functions - which are analogous to functions in the "nor- - mal" library. There is a naming convention - which relates many of the normal/wide vari- - ants: a "_w" is inserted into the name. For - example, waddch becomes wadd_wch. - - Routine Name Index + ncurses + the "normal" library, which handles 8-bit charac- + ters. The normal (8-bit) library stores charac- + ters combined with attributes in chtype data. + + Attributes alone (no corresponding character) may + be stored in chtype or the equivalent attr_t data. + In either case, the data is stored in something + like an integer. + + Each cell (row and column) in a WINDOW is stored + as a chtype. + + ncursesw + the so-called "wide" library, which handles multi- + byte characters (see the section on ALTERNATE CON- + FIGURATIONS). The "wide" library includes all of + the calls from the "normal" library. It adds + about one third more calls using data types which + store multibyte characters: + + cchar_t + corresponds to chtype. However it is a + structure, because more data is stored than + can fit into an integer. The characters are + large enough to require a full integer value + - and there may be more than one character + per cell. The video attributes and color are + stored in separate fields of the structure. + + Each cell (row and column) in a WINDOW is + stored as a cchar_t. + + wchar_t + stores a "wide" character. Like chtype, this + may be an integer. + + wint_t + stores a wchar_t or WEOF - not the same, + though both may have the same size. + + The "wide" library provides new functions which + are analogous to functions in the "normal" + library. There is a naming convention which + relates many of the normal/wide variants: a "_w" + is inserted into the name. For example, waddch + becomes wadd_wch. + + +
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 + flagged with "*" are ncurses-specific, not described by XPG4 or present in SVr4. - curses Routine Name Manual Page Name - -------------------------------------------- - COLOR_PAIR curs_color(3x) - PAIR_NUMBER curs_attr(3x) - _nc_free_and_exit curs_memleaks(3x)* - _nc_freeall curs_memleaks(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) - getattrs curs_attr(3x) - getbegx curs_legacy(3x)* - getbegy curs_legacy(3x)* - getbegyx curs_getyx(3x) - getbkgd curs_bkgd(3x) - getbkgrnd curs_bkgrnd(3x) - getcchar curs_getcchar(3x) - getch curs_getch(3x) - getcurx curs_legacy(3x)* - getcury curs_legacy(3x)* - getmaxx curs_legacy(3x)* - getmaxy curs_legacy(3x)* - getmaxyx curs_getyx(3x) - getmouse curs_mouse(3x)* - getn_wstr curs_get_wstr(3x) - getnstr curs_getstr(3x) - getparx curs_legacy(3x)* - getpary curs_legacy(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_cleared curs_opaque(3x)* - is_idcok curs_opaque(3x)* - is_idlok curs_opaque(3x)* - - is_immedok curs_opaque(3x)* - is_keypad curs_opaque(3x)* - is_leaveok curs_opaque(3x)* - is_linetouched curs_touch(3x) - is_nodelay curs_opaque(3x)* - is_notimeout curs_opaque(3x)* - is_scrollok curs_opaque(3x)* - is_syncok curs_opaque(3x)* - is_term_resized resizeterm(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) - nofilter curs_util(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)* - use_legacy_coding legacy_coding(3x)* - use_tioctl curs_util(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) - - --
+ curses Routine Name Manual Page Name + --------------------------------------------- + COLOR_PAIR curs_color(3x) + PAIR_NUMBER curs_attr(3x) + _nc_free_and_exit curs_memleaks(3x)* + _nc_freeall curs_memleaks(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) + alloc_pair new_pair(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) + extended_color_content curs_color(3x)* + extended_pair_content curs_color(3x)* + extended_slk_color curs_slk(3x)* + filter curs_util(3x) + + find_pair new_pair(3x)* + flash curs_beep(3x) + flushinp curs_util(3x) + free_pair new_pair(3x)* + get_wch curs_get_wch(3x) + get_wstr curs_get_wstr(3x) + getattrs curs_attr(3x) + getbegx curs_legacy(3x)* + getbegy curs_legacy(3x)* + getbegyx curs_getyx(3x) + getbkgd curs_bkgd(3x) + getbkgrnd curs_bkgrnd(3x) + getcchar curs_getcchar(3x) + getch curs_getch(3x) + getcurx curs_legacy(3x)* + getcury curs_legacy(3x)* + getmaxx curs_legacy(3x)* + getmaxy curs_legacy(3x)* + getmaxyx curs_getyx(3x) + getmouse curs_mouse(3x)* + getn_wstr curs_get_wstr(3x) + getnstr curs_getstr(3x) + getparx curs_legacy(3x)* + getpary curs_legacy(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_extended_color curs_color(3x)* + init_extended_pair 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_cleared curs_opaque(3x)* + is_idcok curs_opaque(3x)* + + is_idlok curs_opaque(3x)* + is_immedok curs_opaque(3x)* + is_keypad curs_opaque(3x)* + is_leaveok curs_opaque(3x)* + is_linetouched curs_touch(3x) + is_nodelay curs_opaque(3x)* + is_notimeout curs_opaque(3x)* + is_pad curs_opaque(3x)* + is_scrollok curs_opaque(3x)* + is_subwin curs_opaque(3x)* + is_syncok curs_opaque(3x)* + is_term_resized resizeterm(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) + nofilter curs_util(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) + resize_term resizeterm(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) + tiparm curs_terminfo(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)* + use_legacy_coding legacy_coding(3x)* + use_tioctl curs_util(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) + wgetdelay curs_opaque(3x)* + wgetn_wstr curs_get_wstr(3x) + wgetnstr curs_getstr(3x) + wgetparent curs_opaque(3x)* + wgetscrreg curs_opaque(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 com- pletion, unless otherwise noted in the routine descrip- @@ -768,374 +777,414 @@ Routines that return pointers return NULL on error. --
+
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. - CC When set, change occurrences of the command_character - (i.e., the cmdch capability) of the loaded terminfo - entries to the value of this variable. Very few ter- - minfo entries provide this feature. - - Because this name is also used in development envi- - ronments to represent the C compiler's name, ncurses - ignores it if it does not happen to be a single char- - acter. - - BAUDRATE - The debugging library checks this environment vari- - able when the application has redirected output to a - file. The variable'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. - - COLUMNS - Specify the width of the screen in characters. - 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 - in a terminal description for terminals which are run - as emulations. - - Use the use_env function to disable all use of exter- - nal environment (but not including system calls) to - determine the screen size. Use the use_tioctl func- - tion to update COLUMNS or LINES to match the screen - size obtained from system calls or the terminal data- - base. - - 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 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. - The library will still see a timeout. - - 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 - well as the individual clicks. - - 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: - - $HOME/.termcap - $HOME/.terminfo - - LINES - 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 - 3-button mouse inconsistently from other platforms: - - 1 = left - 2 = right - 3 = middle. - - This variable lets you customize the mouse. The - variable 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 - default_colors(3x)). You may set the foreground and - background color values with this environment vari- - able by proving a 2-element list: foreground,back- - ground. 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 posi- - tive value from zero to the terminfo max_colors value - is allowed. - - NCURSES_CONSOLE2 - This applies only to the MinGW port of ncurses. - - The Console2 program's handling of the Microsoft Con- - sole API call CreateConsoleScreenBuffer is defective. - Applications which use this will hang. However, it - is possible to simulate the action of this call by - mapping coordinates, explicitly saving and restoring - the original screen contents. Setting the environ- - ment variable NCGDB has the same effect. - - NCURSES_GPM_TERMS - This applies only to ncurses configured to use the - GPM interface. - - If present, the environment variable is a list of one - or more terminal names against which the TERM envi- - ronment variable is matched. Setting it to an empty - value disables the GPM interface; using the built-in - support for xterm, etc. - - If the environment variable is absent, ncurses will - attempt to open GPM if TERM contains "linux". - - 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_COOKIE - 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 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 - to use these descriptions, but not want to pay the - performance penalty. - - Set the NCURSES_NO_PADDING environment variable to - disable all but mandatory padding. Mandatory padding - is used as a part of special control sequences such - as flash. - - NCURSES_NO_SETBUF - This setting is obsolete. Before changes - - o started with 5.9 patch 20120825 and - - o continued though 5.9 patch 20130126 - - ncurses enabled buffered output during terminal ini- - tialization. This was done (as in SVr4 curses) for - performance reasons. For testing purposes, both of - ncurses and certain applications, this feature was - made optional. Setting the NCURSES_NO_SETBUF vari- - able disabled output buffering, leaving the output in - the original (usually line buffered) mode. - - In the current implementation, ncurses performs its - own buffering and does not require this workaround. - It does not modify the buffering of the standard out- - put. - - The reason for the change was to make the behavior - for interrupts and other signals more robust. One - drawback is that certain nonconventional programs - would mix ordinary stdio calls with ncurses calls and - (usually) work. This is no longer possible since - ncurses is not using the buffered standard output but - its own output (to the same file descriptor). As a - special case, the low-level calls such as putp still - use the standard output. But high-level curses calls - do not. - - 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". - - As an alternative to the environment variable, - ncurses checks for an extended terminfo capability - U8. This is a numeric capability which can be com- - piled using tic -x. For example - - # linux console, if patched to provide working - # VT100 shift-in/shift-out, with corresponding font. - linux-vt100|linux console with VT100 line-graphics, - U8#0, use=linux, - - # uxterm with vt100Graphics resource set to false - xterm-utf8|xterm relying on UTF-8 line-graphics, - U8#1, use=xterm, - - The name "U8" is chosen to be two characters, to per- - mit it to be used by applications that use ncurses' - termcap interface. - - NCURSES_TRACE - During initialization, the ncurses debugging library - checks the NCURSES_TRACE environment variable. 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. - - TERM Denotes your terminal type. Each terminal type is - distinct, though many are similar. - - TERM is commonly set by terminal emulators to help - applications find a workable terminal description. - Some of those choose a popular approximation, e.g., - "ansi", "vt100", "xterm" rather than an exact fit. - Not infrequently, your application will have problems - with that approach, e.g., incorrect function-key def- - initions. - - If you set TERM in your environment, it has no effect - on the operation of the terminal emulator. It only - affects the way applications work within the termi- - nal. Likewise, as a general rule (xterm being a rare - exception), terminal emulators which allow you to - specify TERM as a parameter or configuration value do - not change their behavior to match that setting. - - TERMCAP - 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 environment variable contains either a - terminal description (with newlines stripped out), or - a file name telling where the information denoted by - the TERM environment variable 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 - your terminal description. This is the simplest, but - not the only way to change the list of directories. - The complete list of directories in order follows: - - o the last directory to which ncurses wrote, if - any, is searched first - - o the directory specified by the TERMINFO environ- - ment variable - - o $HOME/.terminfo - - o directories listed in the TERMINFO_DIRS environ- - ment variable - - o one or more directories whose names are config- - ured and compiled into the ncurses library, i.e., - - o /usr/local/ncurses/share/ter- - minfo:/usr/share/terminfo (corresponding to - the TERMINFO_DIRS variable) - - o /usr/share/terminfo (corresponding to the - TERMINFO variable) - - TERMINFO_DIRS - 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. Normally these are stored in a directory tree, - using subdirectories named by the first letter of the - terminal names therein. - - If ncurses is built with a hashed database, then each - entry in this list can also be the path of the corre- - sponding database file. - - If ncurses is built with a support for reading term- - cap files directly, then an entry in this list may be - the path of a termcap file. - - TERMPATH - If TERMCAP does not hold a file name then ncurses - checks the TERMPATH environment variable. This is a - list of filenames separated by spaces or colons - (i.e., ":") on Unix, semicolons on OS/2 EMX. - - If the TERMPATH environment variable 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 - variables when the current user is the superuser (root), + CC + When set, change occurrences of the command_character + (i.e., the cmdch capability) of the loaded terminfo + entries to the value of this variable. Very few terminfo + entries provide this feature. + + Because this name is also used in development environments + to represent the C compiler's name, ncurses ignores it if + it does not happen to be a single character. + + +
+ The debugging library checks this environment variable + when the application has redirected output to a file. The + variable'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. + + +
+ Specify the width of the screen in characters. Applica- + tions running in a windowing environment usually are able + to obtain the width of the window in which they are exe- + cuting. 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 indepen- + dently. This is mainly useful to circumvent legacy mis- + features of terminal descriptions, e.g., xterm which com- + monly specifies a 65 line screen. For 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 all use of external + environment (but not including system calls) to determine + the screen size. Use the use_tioctl function to update + COLUMNS or LINES to match the screen size obtained from + system calls or the terminal database. + + +
+ 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. + + The most common instance where you may wish to change this + value is to work with slow hosts, e.g., running on a net- + work. 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 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 well as the individual + clicks. + + In addition to the environment variable, this implementa- + tion provides a global variable with the same name. Por- + table applications should not rely upon the presence of + ESCDELAY in either form, but setting the environment vari- + able rather than the global variable does not create prob- + lems when compiling an application. + + +
+ Tells ncurses where your home directory is. That is where + it may read and write auxiliary terminal descriptions: + + $HOME/.termcap + $HOME/.terminfo + + +
+ Like COLUMNS, specify the height of the screen in charac- + ters. See COLUMNS for a detailed description. + + +
+ This applies only to the OS/2 EMX port. It specifies the + order of buttons on the mouse. OS/2 numbers a 3-button + mouse inconsistently from other platforms: + + 1 = left + 2 = right + 3 = middle. + + This variable lets you customize the mouse. The variable + must be three numeric digits 1-3 in any order, e.g., 123 + or 321. If it is not specified, ncurses uses 132. + + +
+ Override the compiled-in assumption that the terminal's + default colors are white-on-black (see default_col- + ors(3x)). You may set the foreground and background color + values with this environment variable by proving a 2-ele- + ment 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_colors + value is allowed. + + +
+ This applies only to the MinGW port of ncurses. + + The Console2 program's handling of the Microsoft Console + API call CreateConsoleScreenBuffer is defective. Applica- + tions which use this will hang. However, it is possible + to simulate the action of this call by mapping coordi- + nates, explicitly saving and restoring the original screen + contents. Setting the environment variable NCGDB has the + same effect. + + +
+ This applies only to ncurses configured to use the GPM + interface. + + If present, the environment variable is a list of one or + more terminal names against which the TERM environment + variable is matched. Setting it to an empty value dis- + ables the GPM interface; using the built-in support for + xterm, etc. + + If the environment variable is absent, ncurses will + attempt to open GPM if TERM contains "linux". + + +
+ Ncurses may use tabs as part of the cursor movement opti- + mization. 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 set- + tings to avoid the problem. NCURSES_NO_MAGIC_COOKIE Some + terminals use a magic-cookie feature which requires spe- + cial handling to make highlighting and other video + attributes display properly. You can suppress the high- + lighting entirely for these terminals by setting this + environment variable. + + +
+ 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 environ- + ment and use curses-based applications. Terminal emula- + tors can duplicate all of the important aspects of a hard- + ware 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. + + As a result, many terminal descriptions (including the + vt100) have delay times embedded. You may wish to use + these descriptions, but not want to pay the performance + penalty. + + Set the NCURSES_NO_PADDING environment variable to disable + all but mandatory padding. Mandatory padding is used as a + part of special control sequences such as flash. + + +
+ This setting is obsolete. Before changes + + o started with 5.9 patch 20120825 and + + o continued though 5.9 patch 20130126 + + ncurses enabled buffered output during terminal initial- + ization. This was done (as in SVr4 curses) for perfor- + mance reasons. For testing purposes, both of ncurses and + certain applications, this feature was made optional. + Setting the NCURSES_NO_SETBUF variable disabled output + buffering, leaving the output in the original (usually + line buffered) mode. + + In the current implementation, ncurses performs its own + buffering and does not require this workaround. It does + not modify the buffering of the standard output. + + The reason for the change was to make the behavior for + interrupts and other signals more robust. One drawback is + that certain nonconventional programs would mix ordinary + stdio calls with ncurses calls and (usually) work. This + is no longer possible since ncurses is not using the + buffered standard output but its own output (to the same + file descriptor). As a special case, the low-level calls + such as putp still use the standard output. But high- + level curses calls do not. + + +
+ During initialization, the ncurses library checks for spe- + cial cases where VT100 line-drawing (and the corresponding + alternate character set capabilities) described in the + terminfo are known to be missing. Specifically, when run- + ning 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 terminal emulators. + + When setting this variable, you should set it to a nonzero + value. Setting it to zero (or to a nonnumber) disables + the special check for "linux" and "screen". + + As an alternative to the environment variable, ncurses + checks for an extended terminfo capability U8. This is a + numeric capability which can be compiled using tic -x. + For example + + # linux console, if patched to provide working + # VT100 shift-in/shift-out, with corresponding font. + linux-vt100|linux console with VT100 line-graphics, + U8#0, use=linux, + + # uxterm with vt100Graphics resource set to false + xterm-utf8|xterm relying on UTF-8 line-graphics, + U8#1, use=xterm, + + The name "U8" is chosen to be two characters, to permit it + to be used by applications that use ncurses' termcap + interface. + + +
+ During initialization, the ncurses debugging library + checks the NCURSES_TRACE environment variable. If it is + defined, to a numeric value, ncurses calls the trace func- + tion, using that value as the argument. + + The argument values, which are defined in curses.h, pro- + vide several types of information. When running with + traces enabled, your application will write the file trace + to the current directory. + + See curs_trace(3x) for more information. + + +
+ Denotes your terminal type. Each terminal type is dis- + tinct, though many are similar. + + TERM is commonly set by terminal emulators to help appli- + cations find a workable terminal description. Some of + those choose a popular approximation, e.g., "ansi", + "vt100", "xterm" rather than an exact fit. Not infre- + quently, your application will have problems with that + approach, e.g., incorrect function-key definitions. + + If you set TERM in your environment, it has no effect on + the operation of the terminal emulator. It only affects + the way applications work within the terminal. Likewise, + as a general rule (xterm being a rare exception), terminal + emulators which allow you to specify TERM as a parameter + or configuration value do not change their behavior to + match that setting. + + +
+ If the ncurses library has been configured with termcap + support, ncurses will check for a terminal's description + in termcap form if it is not available in the terminfo + database. + + The TERMCAP environment variable contains either a termi- + nal description (with newlines stripped out), or a file + name telling where the information denoted by the TERM + environment variable exists. In either case, setting it + directs ncurses to ignore the usual place for this infor- + mation, e.g., /etc/termcap. + + +
+ ncurses can be configured to read from multiple terminal + databases. The TERMINFO variable overrides the location + for the default terminal database. Terminal descriptions + (in terminal format) are stored in terminal databases: + + o Normally these are stored in a directory tree, using + subdirectories named by the first letter of the termi- + nal names therein. + + This is the scheme used in System V, which legacy Unix + systems use, and the TERMINFO variable is used by + curses applications on those systems to override the + default location of the terminal database. + + o If ncurses is built to use hashed databases, then each + entry in this list may be the path of a hashed data- + base file, e.g., + + /usr/share/terminfo.db + + rather than + + /usr/share/terminfo/ + + The hashed database uses less disk-space and is a lit- + tle faster than the directory tree. However, some + applications assume the existence of the directory + tree, reading it directly rather than using the ter- + minfo library calls. + + o If ncurses is built with a support for reading termcap + files directly, then an entry in this list may be the + path of a termcap file. + + o If the TERMINFO variable begins with "hex:" or "b64:", + ncurses uses the remainder of that variable as a com- + piled terminal description. You might produce the + base64 format using infocmp(1m): + + TERMINFO="$(infocmp -0 -Q2 -q)" + export TERMINFO + + The compiled description is used if it corresponds to + the terminal identified by the TERM variable. + + Setting TERMINFO is the simplest, but not the only way to + set location of the default terminal database. The com- + plete list of database locations in order follows: + + o the last terminal database to which ncurses wrote, + if any, is searched first + + o the location specified by the TERMINFO environment + variable + + o $HOME/.terminfo + + o locations listed in the TERMINFO_DIRS environment + variable + + o one or more locations whose names are configured + and compiled into the ncurses library, i.e., + + o /usr/local/ncurses/share/ter- + minfo:/usr/share/terminfo (corresponding to the + TERMINFO_DIRS variable) + + o /usr/share/terminfo (corresponding to the TER- + MINFO variable) + + +
+ Specifies a list of locations to search for terminal + descriptions. Each location in the list is a terminal + database as described in the section on the TERMINFO vari- + able. The list is separated by colons (i.e., ":") on + Unix, semicolons on OS/2 EMX. + + There is no corresponding feature in System V terminfo; it + is an extension developed for ncurses. + + +
+ If TERMCAP does not hold a file name then ncurses checks + the TERMPATH environment variable. This is a list of + filenames separated by spaces or colons (i.e., ":") on + Unix, semicolons on OS/2 EMX. + + If the TERMPATH environment variable 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 + variables when the current user is the superuser (root), or if the application uses setuid or setgid permissions: - $TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as - $HOME. + $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 @@ -1145,7 +1194,7 @@ The standard include for ncurses is as noted in SYN- OPSIS: - #include <curses.h> + #include <curses.h> This option is used to avoid filename conflicts when ncurses is not the main implementation of curses of @@ -1153,7 +1202,7 @@ overwrite, it puts its headers in a subdirectory, e.g., - #include <ncurses/curses.h> + #include <ncurses/curses.h> It also omits a symbolic link which would allow you to use -lcurses to build executables. @@ -1165,11 +1214,11 @@ library names have a "w" appended to them, i.e., instead of - -lncurses + -lncurses you link with - -lncursesw + -lncursesw You must also define _XOPEN_SOURCE_EXTENDED when com- piling for the wide-character library to use the @@ -1216,23 +1265,20 @@ ing it is always in the debug library. --
+
/usr/share/tabset directory containing initialization files for the terminal capability database /usr/share/terminfo ter- minal capability database --
+
terminfo(5) and related pages whose names begin "curs_" for detailed routine descriptions. curs_variables(3x) --
+
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 @@ -1271,8 +1317,7 @@ device. See the curs_print(3x) manual page for details. --
+
The ncurses library is intended to be BASE-level confor- mant with XSI Curses. The EXTENDED XSI Curses functional- ity (including color support) is supported. @@ -1335,8 +1380,7 @@ package's portability correspondingly. --
+
The header file <curses.h> automatically includes the header files <stdio.h> and <unctrl.h>. @@ -1346,8 +1390,7 @@ ture of AT&T System V Release 3 curses. --
+
Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey. Based on pcurses by Pavel Curtis. @@ -1355,10 +1398,51 @@ ncurses(3x)-