+++ /dev/null
-<HTML>
-<BODY>
-<PRE>
- <STRONG>ncurses</STRONG> - CRT screen handling and optimization package
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>ncurses</STRONG> library routines give the user a terminal-
- independent method of updating character screens with
- reasonable optimization. This implementation is ``new
- curses'' (ncurses) and is the approved replacement for
- 4.4BSD classic curses, which has been discontinued.
-
- The <STRONG>ncurses</STRONG> routines emulate the <STRONG><A HREF="ncurses.3x.html">curses(3X)</A></STRONG> library of
- System V Release 4 UNIX, and the XPG4 curses standard (XSI
- curses) but the <STRONG>ncurses</STRONG> library is freely redistributable
- in source form. Differences from the SVr4 curses are
- summarized under the EXTENSIONS and BUGS sections below
- and described in detail in the EXTENSIONS and BUGS
- sections of individual man pages.
-
- A program using these routines must be linked with the
- <STRONG>-lncurses</STRONG> option, or (if it has been generated) with the
- debugging library <STRONG>-lncurses_g</STRONG>. (Your system integrator
- may also have installed these libraries under the names
- <STRONG>-lcurses</STRONG> and <STRONG>-lcurses_g</STRONG>.) The ncurses_g library generates
- trace logs (in a file called 'trace' in the current
- directory) that describe curses actions.
-
- The <STRONG>ncurses</STRONG> package supports: overall screen, window and
- pad manipulation; output to windows and pads; reading
- terminal input; control over terminal and <STRONG>curses</STRONG> 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 <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>
- must be called before any of the other routines that deal
- with windows and screens are used. The routine <STRONG>endwin</STRONG>
- 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:
-
- <STRONG>initscr();</STRONG> <STRONG>cbreak();</STRONG> <STRONG>noecho();</STRONG>
-
- Most programs would additionally use the sequence:
-
- <STRONG>nonl();</STRONG>
- <STRONG>intrflush(stdscr,</STRONG> <STRONG>FALSE);</STRONG>
- <STRONG>keypad(stdscr,</STRONG> <STRONG>TRUE);</STRONG>
-
- defined, must be output. This can be done by executing
- the <STRONG>tput</STRONG> <STRONG>init</STRONG> command after the shell environment variable
- <STRONG>TERM</STRONG> has been exported. <STRONG>tset(1)</STRONG> is usually responsible
- for doing this. [See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for further details.]
-
- The <STRONG>ncurses</STRONG> library permits manipulation of data
- structures, called <EM>windows</EM>, which can be thought of as
- two-dimensional arrays of characters representing all or
- part of a CRT screen. A default window called <STRONG>stdscr</STRONG>,
- which is the size of the terminal screen, is supplied.
- Others may be created with <STRONG>newwin</STRONG>.
-
- Note that <STRONG>curses</STRONG> does not handle overlapping windows,
- that's done by the <STRONG><A HREF="panel.3x.html">panel(3X)</A></STRONG> library. This means that you
- can either use <STRONG>stdscr</STRONG> or divide the screen into tiled
- windows and not using <STRONG>stdscr</STRONG> at all. Mixing the two will
- result in unpredictable, and undesired, effects.
-
- Windows are referred to by variables declared as <STRONG>WINDOW</STRONG> <STRONG>*</STRONG>.
- These data structures are manipulated with routines
- described here and elsewhere in the <STRONG>ncurses</STRONG> manual pages.
- Among which the most basic routines are <STRONG>move</STRONG> and <STRONG>addch</STRONG>.
- More general versions of these routines are included with
- names beginning with <STRONG>w</STRONG>, allowing the user to specify a
- window. The routines not beginning with <STRONG>w</STRONG> affect <STRONG>stdscr</STRONG>.)
-
- After using routines to manipulate a window, <STRONG>refresh</STRONG> is
- called, telling <STRONG>curses</STRONG> to make the user's CRT screen look
- like <STRONG>stdscr</STRONG>. The characters in a window are actually of
- type <STRONG>chtype</STRONG>, (character and attribute data) so that other
- information about the character may also be stored with
- each character.
-
- Special windows called <EM>pads</EM> 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 <STRONG><A HREF="curs_pad.3x.html">curs_pad(3X)</A></STRONG> 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, <STRONG>curses</STRONG> 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
- <STRONG><curses.h></STRONG>, such as <STRONG>A_REVERSE</STRONG>, <STRONG>ACS_HLINE</STRONG>, and <STRONG>KEY_LEFT</STRONG>.
-
- If the environment variables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> are set, or
- if the program is executing in a window environment, line
- and column information in the environment will override
- of a screen is changeable (see <STRONG>ENVIRONMENT</STRONG>).
-
- If the environment variable <STRONG>TERMINFO</STRONG> is defined, any
- program using <STRONG>curses</STRONG> checks for a local terminal
- definition before checking in the standard place. For
- example, if <STRONG>TERM</STRONG> is set to <STRONG>att4424</STRONG>, then the compiled
- terminal definition is found in
-
- <STRONG>@DATADIR@/terminfo/a/att4424</STRONG>.
-
- (The <STRONG>a</STRONG> is copied from the first letter of <STRONG>att4424</STRONG> to avoid
- creation of huge directories.) However, if <STRONG>TERMINFO</STRONG> is
- set to <STRONG>$HOME/myterms</STRONG>, <STRONG>curses</STRONG> first checks
-
- <STRONG>$HOME/myterms/a/att4424</STRONG>,
-
- and if that fails, it then checks
-
- <STRONG>@DATADIR@/terminfo/a/att4424</STRONG>.
-
- This is useful for developing experimental definitions or
- when write permission in <STRONG>@DATADIR@/terminfo</STRONG> is not
- available.
-
- The integer variables <STRONG>LINES</STRONG> and <STRONG>COLS</STRONG> are defined in
- <STRONG><curses.h></STRONG> and will be filled in by <STRONG>initscr</STRONG> with the size
- of the screen. The constants <STRONG>TRUE</STRONG> and <STRONG>FALSE</STRONG> have the
- values <STRONG>1</STRONG> and <STRONG>0</STRONG>, respectively.
-
- The <STRONG>curses</STRONG> routines also define the <STRONG>WINDOW</STRONG> <STRONG>*</STRONG> variable
- <STRONG>curscr</STRONG> which is used for certain low-level operations like
- clearing and redrawing a screen containing garbage. The
- <STRONG>curscr</STRONG> can be used in only a few routines.
-
-
- <STRONG>Routine</STRONG> <STRONG>and</STRONG> <STRONG>Argument</STRONG> <STRONG>Names</STRONG>
- Many <STRONG>curses</STRONG> routines have two or more versions. The
- routines prefixed with <STRONG>w</STRONG> require a window argument. The
- routines prefixed with <STRONG>p</STRONG> require a pad argument. Those
- without a prefix generally use <STRONG>stdscr</STRONG>.
-
- The routines prefixed with <STRONG>mv</STRONG> require a <EM>y</EM> and <EM>x</EM> coordinate
- to move to before performing the appropriate action. The
- <STRONG>mv</STRONG> routines imply a call to <STRONG>move</STRONG> before the call to the
- other routine. The coordinate <EM>y</EM> always refers to the row
- (of the window), and <EM>x</EM> always refers to the column. The
- upper left-hand corner is always (0,0), not (1,1).
-
- The routines prefixed with <STRONG>mvw</STRONG> take both a window argument
- and <EM>x</EM> and <EM>y</EM> coordinates. The window argument is always
- specified before the coordinates.
-
- <STRONG>WINDOW</STRONG>.
-
- Option setting routines require a Boolean flag <EM>bf</EM> with the
- value <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>; <EM>bf</EM> is always of type <STRONG>bool</STRONG>. The
- variables <EM>ch</EM> and <EM>attrs</EM> below are always of type <STRONG>chtype</STRONG>.
- The types <STRONG>WINDOW</STRONG>, <STRONG>SCREEN</STRONG>, <STRONG>bool</STRONG>, and <STRONG>chtype</STRONG> are defined in
- <STRONG><curses.h></STRONG>. The type <STRONG>TERMINAL</STRONG> is defined in <STRONG><term.h></STRONG>.
- All other arguments are integers.
-
-
- <STRONG>Routine</STRONG> <STRONG>Name</STRONG> <STRONG>Index</STRONG>
- The following table lists each <STRONG>curses</STRONG> 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.
-
- center tab(/); l l l l . <STRONG>curses</STRONG> Routine Name/Manual Page
- Name = addch/<STRONG><A HREF="curs_addch.3x.html">curs_addch(3X)</A></STRONG> addchnstr/<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3X)</A></STRONG>
- addchstr/<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3X)</A></STRONG> addnstr/<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3X)</A></STRONG>
- addstr/<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3X)</A></STRONG> attr_get/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>
- attr_off/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG> attr_on/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>
- attr_set/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG> attroff/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>
- attron/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG> attrset/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>
- baudrate/<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3X)</A></STRONG> beep/<STRONG><A HREF="curs_beep.3x.html">curs_beep(3X)</A></STRONG>
- bkgd/<STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3X)</A></STRONG> bkgdset/<STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3X)</A></STRONG>
- border/<STRONG><A HREF="curs_border.3x.html">curs_border(3X)</A></STRONG> box/<STRONG><A HREF="curs_border.3x.html">curs_border(3X)</A></STRONG>
- can_change_color/<STRONG><A HREF="curs_color.3x.html">curs_color(3X)</A></STRONG> cbreak/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG>
- chgat/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG> clear/<STRONG><A HREF="curs_clear.3x.html">curs_clear(3X)</A></STRONG>
- clearok/<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3X)</A></STRONG> clrtobot/<STRONG><A HREF="curs_clear.3x.html">curs_clear(3X)</A></STRONG>
- clrtoeol/<STRONG><A HREF="curs_clear.3x.html">curs_clear(3X)</A></STRONG> color_content/<STRONG><A HREF="curs_color.3x.html">curs_color(3X)</A></STRONG>
- color_set/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG> copywin/<STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3X)</A></STRONG>
- curs_set/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG> def_prog_mode/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG>
- def_shell_mode/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG> define_key/<STRONG><A HREF="define_key.3x.html">define_key(3X)</A></STRONG>*
- del_curterm/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG> delay_output/<STRONG><A HREF="curs_util.3x.html">curs_util(3X)</A></STRONG>
- delch/<STRONG><A HREF="curs_delch.3x.html">curs_delch(3X)</A></STRONG> deleteln/<STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3X)</A></STRONG>
- delscreen/<STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3X)</A></STRONG> delwin/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG>
- derwin/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG> doupdate/<STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3X)</A></STRONG>
- dupwin/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG> echo/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG>
- echochar/<STRONG><A HREF="curs_addch.3x.html">curs_addch(3X)</A></STRONG> endwin/<STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3X)</A></STRONG>
- erase/<STRONG><A HREF="curs_clear.3x.html">curs_clear(3X)</A></STRONG> erasechar/<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3X)</A></STRONG>
- filter/<STRONG><A HREF="curs_util.3x.html">curs_util(3X)</A></STRONG> flash/<STRONG><A HREF="curs_beep.3x.html">curs_beep(3X)</A></STRONG>
- flushinp/<STRONG><A HREF="curs_util.3x.html">curs_util(3X)</A></STRONG> getbegyx/<STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3X)</A></STRONG>
- getbkgd/<STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3X)</A></STRONG> getch/<STRONG><A HREF="curs_getch.3x.html">curs_getch(3X)</A></STRONG>
- getmaxyx/<STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3X)</A></STRONG> getmouse/<STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3X)</A></STRONG>*
- getnstr/<STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3X)</A></STRONG> getparyx/<STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3X)</A></STRONG>
- getstr/<STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3X)</A></STRONG> getsyx/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG>
- getwin/<STRONG><A HREF="curs_util.3x.html">curs_util(3X)</A></STRONG> getyx/<STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3X)</A></STRONG>
- halfdelay/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG> has_colors/<STRONG><A HREF="curs_color.3x.html">curs_color(3X)</A></STRONG>
- has_ic/<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3X)</A></STRONG> has_il/<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3X)</A></STRONG>
- has_key/<STRONG><A HREF="curs_getch.3x.html">curs_getch(3X)</A></STRONG>* hline/<STRONG><A HREF="curs_border.3x.html">curs_border(3X)</A></STRONG>
- idcok/<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3X)</A></STRONG> idlok/<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3X)</A></STRONG>
- immedok/<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3X)</A></STRONG> inch/<STRONG><A HREF="curs_inch.3x.html">curs_inch(3X)</A></STRONG>
- initscr/<STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3X)</A></STRONG> innstr/<STRONG><A HREF="curs_instr.3x.html">curs_instr(3X)</A></STRONG>
- insch/<STRONG><A HREF="curs_insch.3x.html">curs_insch(3X)</A></STRONG> insdelln/<STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3X)</A></STRONG>
- insertln/<STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3X)</A></STRONG> insnstr/<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3X)</A></STRONG>
- insstr/<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3X)</A></STRONG> instr/<STRONG><A HREF="curs_instr.3x.html">curs_instr(3X)</A></STRONG>
- intrflush/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG> is_linetouched/<STRONG><A HREF="curs_touch.3x.html">curs_touch(3X)</A></STRONG>
- is_wintouched/<STRONG><A HREF="curs_touch.3x.html">curs_touch(3X)</A></STRONG> isendwin/<STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3X)</A></STRONG>
- keyname/<STRONG><A HREF="curs_util.3x.html">curs_util(3X)</A></STRONG> keyok/<STRONG><A HREF="keyok.3x.html">keyok(3X)</A></STRONG>*
- keypad/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG> killchar/<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3X)</A></STRONG>
- leaveok/<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3X)</A></STRONG> longname/<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3X)</A></STRONG>
- mcprint/<STRONG><A HREF="curs_print.3x.html">curs_print(3X)</A></STRONG>* meta/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG>
- mouseinterval/<STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3X)</A></STRONG>* mousemask/<STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3X)</A></STRONG>*
- move/<STRONG><A HREF="curs_move.3x.html">curs_move(3X)</A></STRONG> mvaddch/<STRONG><A HREF="curs_addch.3x.html">curs_addch(3X)</A></STRONG>
- mvaddchnstr/<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3X)</A></STRONG> mvaddchstr/<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3X)</A></STRONG>
- mvaddnstr/<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3X)</A></STRONG> mvaddstr/<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3X)</A></STRONG>
- mvchgat/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG> mvcur/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG>
- mvdelch/<STRONG><A HREF="curs_delch.3x.html">curs_delch(3X)</A></STRONG> mvderwin/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG>
- mvgetch/<STRONG><A HREF="curs_getch.3x.html">curs_getch(3X)</A></STRONG> mvgetnstr/<STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3X)</A></STRONG>
- mvgetstr/<STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3X)</A></STRONG> mvhline/<STRONG><A HREF="curs_border.3x.html">curs_border(3X)</A></STRONG>
- mvinch/<STRONG><A HREF="curs_inch.3x.html">curs_inch(3X)</A></STRONG> mvinchnstr/<STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3X)</A></STRONG>
- mvinchstr/<STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3X)</A></STRONG> mvinnstr/<STRONG><A HREF="curs_instr.3x.html">curs_instr(3X)</A></STRONG>
- mvinsch/<STRONG><A HREF="curs_insch.3x.html">curs_insch(3X)</A></STRONG> mvinsnstr/<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3X)</A></STRONG>
- mvinsstr/<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3X)</A></STRONG> mvinstr/<STRONG><A HREF="curs_instr.3x.html">curs_instr(3X)</A></STRONG>
- mvprintw/<STRONG><A HREF="curs_printw.3x.html">curs_printw(3X)</A></STRONG> mvscanw/<STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3X)</A></STRONG>
- mvwaddch/<STRONG><A HREF="curs_addch.3x.html">curs_addch(3X)</A></STRONG> mvwaddchnstr/<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3X)</A></STRONG>
- mvwaddchstr/<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3X)</A></STRONG> mvwaddnstr/<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3X)</A></STRONG>
- mvwaddstr/<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3X)</A></STRONG> mvwchgat/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>
- mvwdelch/<STRONG><A HREF="curs_delch.3x.html">curs_delch(3X)</A></STRONG> mvwgetch/<STRONG><A HREF="curs_getch.3x.html">curs_getch(3X)</A></STRONG>
- mvwgetnstr/<STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3X)</A></STRONG> mvwgetstr/<STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3X)</A></STRONG>
- mvwhline/<STRONG><A HREF="curs_border.3x.html">curs_border(3X)</A></STRONG> mvwin/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG>
- mvwinch/<STRONG><A HREF="curs_inch.3x.html">curs_inch(3X)</A></STRONG> mvwinchnstr/<STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3X)</A></STRONG>
- mvwinchstr/<STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3X)</A></STRONG> mvwinnstr/<STRONG><A HREF="curs_instr.3x.html">curs_instr(3X)</A></STRONG>
- mvwinsch/<STRONG><A HREF="curs_insch.3x.html">curs_insch(3X)</A></STRONG> mvwinsnstr/<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3X)</A></STRONG>
- mvwinsstr/<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3X)</A></STRONG> mvwinstr/<STRONG><A HREF="curs_instr.3x.html">curs_instr(3X)</A></STRONG>
- mvwprintw/<STRONG><A HREF="curs_printw.3x.html">curs_printw(3X)</A></STRONG> mvwscanw/<STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3X)</A></STRONG>
- mvwvline/<STRONG><A HREF="curs_border.3x.html">curs_border(3X)</A></STRONG> napms/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG>
- newpad/<STRONG><A HREF="curs_pad.3x.html">curs_pad(3X)</A></STRONG> newterm/<STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3X)</A></STRONG>
- newwin/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG> nl/<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3X)</A></STRONG>
- nocbreak/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG> nodelay/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG>
- noecho/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG> nonl/<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3X)</A></STRONG>
- noqiflush/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG> noraw/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG>
- notimeout/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG> overlay/<STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3X)</A></STRONG>
- overwrite/<STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3X)</A></STRONG> pair_content/<STRONG><A HREF="curs_color.3x.html">curs_color(3X)</A></STRONG>
- pechochar/<STRONG><A HREF="curs_pad.3x.html">curs_pad(3X)</A></STRONG> pnoutrefresh/<STRONG><A HREF="curs_pad.3x.html">curs_pad(3X)</A></STRONG>
- prefresh/<STRONG><A HREF="curs_pad.3x.html">curs_pad(3X)</A></STRONG> printw/<STRONG><A HREF="curs_printw.3x.html">curs_printw(3X)</A></STRONG>
- putp/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG> putwin/<STRONG><A HREF="curs_util.3x.html">curs_util(3X)</A></STRONG>
- qiflush/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG> raw/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG>
- redrawwin/<STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3X)</A></STRONG> refresh/<STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3X)</A></STRONG>
- reset_prog_mode/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG>
- reset_shell_mode/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG> resetty/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG>
- resizeterm/<STRONG><A HREF="resizeterm.3x.html">resizeterm(3X)</A></STRONG>* restartterm/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG>
- ripoffline/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG> savetty/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG>
- scanw/<STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3X)</A></STRONG> scr_dump/<STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3X)</A></STRONG>
- scroll/<STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3X)</A></STRONG> scrollok/<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3X)</A></STRONG>
- set_curterm/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG> set_term/<STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3X)</A></STRONG>
- setscrreg/<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3X)</A></STRONG> setsyx/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG>
- setterm/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG> setupterm/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG>
- slk_attr/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG>* slk_attr_off/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG>
- slk_attr_on/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG> slk_attr_set/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG>
- slk_attroff/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG> slk_attron/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG>
- slk_attrset/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG> slk_clear/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG>
- slk_color/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG> slk_init/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG>
- slk_label/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG> slk_noutrefresh/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG>
- slk_refresh/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG> slk_restore/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG>
- slk_set/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG> slk_touch/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG>
- standend/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG> standout/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>
- start_color/<STRONG><A HREF="curs_color.3x.html">curs_color(3X)</A></STRONG> subpad/<STRONG><A HREF="curs_pad.3x.html">curs_pad(3X)</A></STRONG>
- subwin/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG> syncok/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG>
- termattrs/<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3X)</A></STRONG> termname/<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3X)</A></STRONG>
- tgetent/<STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3X)</A></STRONG> tgetflag/<STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3X)</A></STRONG>
- tgetnum/<STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3X)</A></STRONG> tgetstr/<STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3X)</A></STRONG>
- tgoto/<STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3X)</A></STRONG> tigetflag/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG>
- tigetnum/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG> tigetstr/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG>
- timeout/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG> touchline/<STRONG><A HREF="curs_touch.3x.html">curs_touch(3X)</A></STRONG>
- touchwin/<STRONG><A HREF="curs_touch.3x.html">curs_touch(3X)</A></STRONG> tparm/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG>
- tputs/<STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3X)</A></STRONG> tputs/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG>
- typeahead/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG> unctrl/<STRONG><A HREF="curs_util.3x.html">curs_util(3X)</A></STRONG>
- ungetch/<STRONG><A HREF="curs_getch.3x.html">curs_getch(3X)</A></STRONG> ungetmouse/<STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3X)</A></STRONG>*
- untouchwin/<STRONG><A HREF="curs_touch.3x.html">curs_touch(3X)</A></STRONG> use_default_colors/<STRONG><A HREF="dft_fgbg.3x.html">dft_fgbg(3X)</A></STRONG>*
- use_env/<STRONG><A HREF="curs_util.3x.html">curs_util(3X)</A></STRONG> vidattr/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG>
- vidputs/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG> vline/<STRONG><A HREF="curs_border.3x.html">curs_border(3X)</A></STRONG>
- vw_printw/<STRONG><A HREF="curs_printw.3x.html">curs_printw(3X)</A></STRONG> vw_scanw/<STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3X)</A></STRONG>
- vwprintw/<STRONG><A HREF="curs_printw.3x.html">curs_printw(3X)</A></STRONG> vwscanw/<STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3X)</A></STRONG>
- waddch/<STRONG><A HREF="curs_addch.3x.html">curs_addch(3X)</A></STRONG> waddchnstr/<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3X)</A></STRONG>
- waddchstr/<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3X)</A></STRONG> waddnstr/<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3X)</A></STRONG>
- waddstr/<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3X)</A></STRONG> wattr_get/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>
- wattr_off/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG> wattr_on/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>
- wattr_set/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG> wattroff/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>
- wattron/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG> wattrset/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>
- wbkgd/<STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3X)</A></STRONG> wbkgdset/<STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3X)</A></STRONG>
- wborder/<STRONG><A HREF="curs_border.3x.html">curs_border(3X)</A></STRONG> wchgat/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>
- wclear/<STRONG><A HREF="curs_clear.3x.html">curs_clear(3X)</A></STRONG> wclrtobot/<STRONG><A HREF="curs_clear.3x.html">curs_clear(3X)</A></STRONG>
- wclrtoeol/<STRONG><A HREF="curs_clear.3x.html">curs_clear(3X)</A></STRONG> wcolor_set/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>
- wcursyncup/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG> wdelch/<STRONG><A HREF="curs_delch.3x.html">curs_delch(3X)</A></STRONG>
- wdeleteln/<STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3X)</A></STRONG> wechochar/<STRONG><A HREF="curs_addch.3x.html">curs_addch(3X)</A></STRONG>
- wenclose/<STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3X)</A></STRONG>* werase/<STRONG><A HREF="curs_clear.3x.html">curs_clear(3X)</A></STRONG>
- wgetch/<STRONG><A HREF="curs_getch.3x.html">curs_getch(3X)</A></STRONG> wgetnstr/<STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3X)</A></STRONG>
- wgetstr/<STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3X)</A></STRONG> whline/<STRONG><A HREF="curs_border.3x.html">curs_border(3X)</A></STRONG>
- winch/<STRONG><A HREF="curs_inch.3x.html">curs_inch(3X)</A></STRONG> winchnstr/<STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3X)</A></STRONG>
- winchstr/<STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3X)</A></STRONG> winnstr/<STRONG><A HREF="curs_instr.3x.html">curs_instr(3X)</A></STRONG>
- winsch/<STRONG><A HREF="curs_insch.3x.html">curs_insch(3X)</A></STRONG> winsdelln/<STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3X)</A></STRONG>
- winsertln/<STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3X)</A></STRONG> winsnstr/<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3X)</A></STRONG>
- winsstr/<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3X)</A></STRONG> winstr/<STRONG><A HREF="curs_instr.3x.html">curs_instr(3X)</A></STRONG>
- wmouse_trafo/<STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3X)</A></STRONG> wmove/<STRONG><A HREF="curs_move.3x.html">curs_move(3X)</A></STRONG>
- wnoutrefresh/<STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3X)</A></STRONG> wprintw/<STRONG><A HREF="curs_printw.3x.html">curs_printw(3X)</A></STRONG>
- wscrl/<STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3X)</A></STRONG> wsetscrreg/<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3X)</A></STRONG>
- wstandend/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG> wstandout/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>
- wsyncdown/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG> wsyncup/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG>
- wtimeout/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG> wtouchln/<STRONG><A HREF="curs_touch.3x.html">curs_touch(3X)</A></STRONG>
- wvline/<STRONG><A HREF="curs_border.3x.html">curs_border(3X)</A></STRONG>
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- Routines that return an integer return <STRONG>ERR</STRONG> upon failure
- and an integer value other than <STRONG>ERR</STRONG> upon successful
- completion, unless otherwise noted in the routine
- descriptions.
-
- All macros return the value of the <STRONG>w</STRONG> version, except
- <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>, <STRONG>getmaxyx</STRONG>. The
- return values of <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>,
- and <STRONG>getmaxyx</STRONG> are undefined (<EM>i</EM>.<EM>e</EM>., these should not be used
- as the right-hand side of assignment statements).
-
- Routines that return pointers return <STRONG>NULL</STRONG> on error.
-
-
-</PRE>
-<H2>ENVIRONMENT</H2><PRE>
- The following environment symbols are useful for
- customizing the runtime behavior of the <STRONG>ncurses</STRONG> library.
- The most important ones have been already discussed in
- detail.
-
- BAUDRATE
- 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 <STRONG>ncurses</STRONG> 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 <STRONG>cmdch</STRONG> capability) of the loaded terminfo
- entries to the value of this symbol. Very few
- terminfo 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,
- <STRONG>ncurses</STRONG> uses the size which may be specified in the
- terminfo database (i.e., the <STRONG>cols</STRONG> 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
-
- 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, <STRONG>lines</STRONG> and <STRONG>cols</STRONG> should not be specified
- in a terminal description for terminals which are run
- as emulations.
-
- Use the <STRONG>use_env</STRONG> function to disable this feature.
-
- 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.
-
- 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
- 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.
-
- HOME Tells <STRONG>ncurses</STRONG> 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.
-
- 123 or 321. If it is not specified, <STRONG>ncurses</STRONG> uses
- 132.
-
- 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.
-
- 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 symbol to disable all but
- mandatory padding. Mandatory padding is used as a
- part of special control sequences such as <EM>flash</EM>.
-
- NCURSES_NO_SETBUF
- Normally <STRONG>ncurses</STRONG> enables buffered output during
- terminal initialization. This is done (as in SVr4
- curses) for performance reasons. For testing
- purposes, both of <STRONG>ncurses</STRONG> 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_TRACE
- During initialization, the <STRONG>ncurses</STRONG> debugging library
- checks the NCURSES_TRACE symbol. If it is defined,
- to a numeric value, <STRONG>ncurses</STRONG> calls the <STRONG>trace</STRONG> function,
- using that value as the argument.
-
- The argument values, which are defined in <STRONG>curses.h</STRONG>,
- provide several types of information. When running
- with traces enabled, your application will write the
- file <STRONG>trace</STRONG> to the current directory.
-
- TERM Denotes your terminal type. Each terminal type is
- If the <STRONG>ncurses</STRONG> library has been configured with
- <EM>termcap</EM> support, <STRONG>ncurses</STRONG> 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 <STRONG>ncurses</STRONG> to ignore the usual place for this
- information, e.g., /etc/termcap.
-
- TERMINFO
- Overrides the directory in which <STRONG>ncurses</STRONG> 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:
-
- - the last directory to which <STRONG>ncurses</STRONG> wrote, if any,
- is searched first.
-
- - the directory specified by the TERMINFO symbol
-
- - $HOME/.terminfo
-
- - directories listed in the TERMINFO_DIRS symbol
-
- - one or more directories whose names are configured
- and compiled into the ncurses library, e.g.,
- @DATADIR@/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.
-
- TERMPATH
- If TERMCAP does not hold a file name then <STRONG>ncurses</STRONG>
- checks the TERMPATH symbol. This is a list of
- filenames separated by colons (i.e., ":"). If the
- TERMPATH symbol is not set, <STRONG>ncurses</STRONG> looks in the
- files /etc/termcap, /usr/share/misc/termcap and
- $HOME/.termcap, in that order.
-
-
-</PRE>
-<H2>FILES</H2><PRE>
- @DATADIR@/tabset
- directory containing initialization files for the
- terminal capability database @DATADIR@/terminfo
- terminal capability database
-
- <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> and 3X pages whose names begin "curs_" for
- detailed routine descriptions.
-
-
-</PRE>
-<H2>EXTENSIONS</H2><PRE>
- The <STRONG>ncurses</STRONG> library can be compiled with an option
- (<STRONG>-DUSE_GETCAP</STRONG>) that falls back to the old-style
- /etc/termcap file if the terminal setup code cannot find a
- terminfo entry corresponding to <STRONG>TERM</STRONG>. Use of this feature
- is not recommended, as it essentially includes an entire
- termcap compiler in the <STRONG>ncurses</STRONG> startup code, at
- significant cost in core and startup cycles.
-
- The <STRONG>ncurses</STRONG> library includes facilities for capturing
- mouse events on certain terminals (including xterm). See
- the <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3X)</A></STRONG> manual page for details.
-
- The <STRONG>ncurses</STRONG> library includes facilities for responding to
- window resizing events, e.g., when running in an xterm.
- See the <STRONG><A HREF="resizeterm.3x.html">resizeterm(3X)</A></STRONG> and <STRONG><A HREF="wresize.3x.html">wresize(3X)</A></STRONG> manual pages for
- details. In addition, the library may be configured with
- a SIGWINCH handler.
-
- The <STRONG>ncurses</STRONG> 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 <STRONG><A HREF="define_key.3x.html">define_key(3X)</A></STRONG> and <STRONG><A HREF="keyok.3x.html">keyok(3X)</A></STRONG> manual pages for
- details.
-
- The <STRONG>ncurses</STRONG> 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 <STRONG><A HREF="use_default_colors.3x.html">use_default_colors(3X)</A></STRONG> manual page for
- details.
-
- The <STRONG>ncurses</STRONG> library includes a function for directing
- application output to a printer attached to the terminal
- device. See the <STRONG><A HREF="curs_print.3x.html">curs_print(3X)</A></STRONG> manual page for details.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- The <STRONG>ncurses</STRONG> 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: <STRONG>add_wch</STRONG>, <STRONG>add_wchnstr</STRONG>, <STRONG>add_wchstr</STRONG>,
- <STRONG>addnwstr</STRONG>, <STRONG>addwstr</STRONG>, <STRONG>bkgrnd</STRONG>, <STRONG>bkgrndset</STRONG>, <STRONG>border_set</STRONG>, <STRONG>box_set</STRONG>,
- <STRONG>echo_wchar</STRONG>, <STRONG>erasewchar</STRONG>, <STRONG>get_wch</STRONG>, <STRONG>get_wstr</STRONG>, <STRONG>getbkgrnd</STRONG>,
- <STRONG>getcchar</STRONG>, <STRONG>getn_wstr</STRONG>, <STRONG>getwchtype</STRONG>, <STRONG>hline_set</STRONG>, <STRONG>in_wch</STRONG>,
- <STRONG>killwchar</STRONG>, <STRONG>mvadd_wch</STRONG>, <STRONG>mvadd_wchnstr</STRONG>, <STRONG>mvadd_wchstr</STRONG>,
- <STRONG>mvaddnwstr</STRONG>, <STRONG>mvaddwstr</STRONG>, <STRONG>mvget_wch</STRONG>, <STRONG>mvget_wstr</STRONG>, <STRONG>mvgetn_wstr</STRONG>,
- <STRONG>mvhline_set</STRONG>, <STRONG>mvin_wch</STRONG>, <STRONG>mvinnwstr</STRONG>, <STRONG>mvins_nwstr</STRONG>, <STRONG>mvins_wch</STRONG>,
- <STRONG>mvins_wstr</STRONG>, <STRONG>mvinwchnstr</STRONG>, <STRONG>mvinwchstr</STRONG>, <STRONG>mvinwchstr</STRONG>, <STRONG>mvinwstr</STRONG>,
- <STRONG>mvvline_set</STRONG>, <STRONG>mvwadd_wch</STRONG>, <STRONG>mvwadd_wchnstr</STRONG>, <STRONG>mvwadd_wchstr</STRONG>,
- <STRONG>mvwaddnwstr</STRONG>, <STRONG>mvwaddwstr</STRONG>, <STRONG>mvwget_ch</STRONG>, <STRONG>mvwget_wch</STRONG>,
- <STRONG>mvwget_wstr</STRONG>, <STRONG>mvwgetn_wstr</STRONG>, <STRONG>mvwhline_set</STRONG>, <STRONG>mvwin_wch</STRONG>,
- <STRONG>mvwin_wchnstr</STRONG>, <STRONG>mvwin_wchstr</STRONG>, <STRONG>mvwinnwstr</STRONG>, <STRONG>mvwins_nwstr</STRONG>,
- <STRONG>mvwins_wch</STRONG>, <STRONG>mvwins_wstr</STRONG>, <STRONG>mvwinwchnstr</STRONG>. <STRONG>mvwinwstr</STRONG>,
- <STRONG>mvwvline_set</STRONG>, <STRONG>pecho_wchar</STRONG>, <STRONG>setcchar</STRONG>, <STRONG>slk_wset</STRONG>, <STRONG>term_attrs</STRONG>,
- <STRONG>unget_wch</STRONG>, <STRONG>vhline_set</STRONG>, <STRONG>vid_attr</STRONG>, <STRONG>vid_puts</STRONG>, <STRONG>vline_set</STRONG>,
- <STRONG>wadd_wch</STRONG>, <STRONG>wadd_wchnstr</STRONG>, <STRONG>wadd_wchstr</STRONG>, <STRONG>waddnwstr</STRONG>, <STRONG>waddwstr</STRONG>,
- <STRONG>waddwstr</STRONG>, <STRONG>wbkgrnd</STRONG>, <STRONG>wbkgrndset</STRONG>, <STRONG>wbkgrndset</STRONG>, <STRONG>wborder_set</STRONG>,
- <STRONG>wecho_wchar</STRONG>, <STRONG>wecho_wchar</STRONG>, <STRONG>wget_wch</STRONG>, <STRONG>wget_wstr</STRONG>, <STRONG>wgetbkgrnd</STRONG>,
- <STRONG>wgetn_wstr</STRONG>, <STRONG>whline_set</STRONG>, <STRONG>win_wch</STRONG>, <STRONG>win_wchnstr</STRONG>, <STRONG>win_wchstr</STRONG>,
- <STRONG>winnwstr</STRONG>, <STRONG>wins_nwstr</STRONG>, <STRONG>wins_wch</STRONG>, <STRONG>wins_wstr</STRONG>, <STRONG>winwchnstr</STRONG>,
- <STRONG>winwchstr</STRONG>, <STRONG>winwstr</STRONG>, <STRONG>wunctrl</STRONG>, <STRONG>wvline_set</STRONG>,
-
- A small number of local differences (that is, individual
- differences between the XSI Curses and <STRONG>ncurses</STRONG> calls) are
- described in <STRONG>PORTABILITY</STRONG> sections of the library man
- pages.
-
- The routine <STRONG>has_key</STRONG> is not part of XPG4, nor is it present
- in SVr4. See the <STRONG><A HREF="curs_getch.3x.html">curs_getch(3X)</A></STRONG> manual page for details.
-
- The routine <STRONG>slk_attr</STRONG> is not part of XPG4, nor is it
- present in SVr4. See the <STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG> manual page for
- details.
-
- The routines <STRONG>getmouse</STRONG>, <STRONG>mousemask</STRONG>, <STRONG>ungetmouse</STRONG>,
- <STRONG>mouseinterval</STRONG>, and <STRONG>wenclose</STRONG> relating to mouse interfacing
- are not part of XPG4, nor are they present in SVr4. See
- the <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3X)</A></STRONG> manual page for details.
-
- The routine <STRONG>mcprint</STRONG> was not present in any previous curses
- implementation. See the <STRONG><A HREF="curs_print.3x.html">curs_print(3X)</A></STRONG> manual page for
- details.
-
- The routine <STRONG>wresize</STRONG> is not part of XPG4, nor is it present
- in SVr4. See the <STRONG><A HREF="wresize.3x.html">wresize(3X)</A></STRONG> manual page for details.
-
- In historic curses versions, delays embedded in the
- capabilities <STRONG>cr</STRONG>, <STRONG>ind</STRONG>, <STRONG>cub1</STRONG>, <STRONG>ff</STRONG> and <STRONG>tab</STRONG> 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 <STRONG>char</STRONG> <STRONG>*const</STRONG> (or
- (see section 3.5.4.1), these declarations are either (a)
- meaningless, or (b) meaningless and illegal. The
- declaration <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*x</STRONG> is a modifiable pointer to
- unmodifiable data, but <STRONG>char</STRONG> <STRONG>*const</STRONG> <STRONG>x</STRONG>' is an unmodifiable
- pointer to modifiable data. Given that C passes arguments
- by value, <STRONG><type></STRONG> <STRONG>*const</STRONG> as a formal type is at best
- dubious. Some compilers choke on the prototypes.
- Therefore, in this implementation, they have been changed
- to <STRONG>const</STRONG> <STRONG><type></STRONG> <STRONG>*</STRONG> globally.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG><curses.h></STRONG> automatically includes the
- header files <STRONG><stdio.h></STRONG> and <STRONG><unctrl.h></STRONG>.
-
- If standard output from a <STRONG>ncurses</STRONG> 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.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
- Based on pcurses by Pavel Curtis.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>