ncurses 5.2
[ncurses.git] / doc / html / man / ncurses.3x.html
1 <HTML>
2 <BODY>
3 <PRE>
4 <!-- Manpage converted by man2html 3.0.1 -->
5
6 </PRE>
7 <H2>NAME</H2><PRE>
8        <B>ncurses</B> - CRT screen handling and optimization package
9
10
11 </PRE>
12 <H2>SYNOPSIS</H2><PRE>
13        <B>#include</B> <B>&lt;curses.h&gt;</B>
14
15
16 </PRE>
17 <H2>DESCRIPTION</H2><PRE>
18        The  <B>ncurses</B>  library  routines  give the user a terminal-
19        independent method  of  updating  character  screens  with
20        reasonable  optimization.   This  implementation  is ``new
21        curses'' (ncurses) and is  the  approved  replacement  for
22        4.4BSD classic curses, which has been discontinued.
23
24        The  <B>ncurses</B>  routines  emulate  the <B><A HREF="ncurses.3x.html">curses(3x)</A></B> library of
25        System V Release 4 UNIX, and the XPG4 curses standard (XSI
26        curses)  but the <B>ncurses</B> library is freely redistributable
27        in source form.  Differences  from  the  SVr4  curses  are
28        summarized  under  the  EXTENSIONS and BUGS sections below
29        and  described  in  detail  in  the  EXTENSIONS  and  BUGS
30        sections of individual man pages.
31
32        A  program  using  these  routines must be linked with the
33        <B>-lncurses</B> option, or (if it has been generated)  with  the
34        debugging  library  <B>-lncurses_g</B>.   (Your system integrator
35        may also have installed these libraries  under  the  names
36        <B>-lcurses</B> and <B>-lcurses_g</B>.)  The ncurses_g library generates
37        trace logs (in  a  file  called  'trace'  in  the  current
38        directory) that describe curses actions.
39
40        The  <B>ncurses</B>  package supports: overall screen, window and
41        pad manipulation; output  to  windows  and  pads;  reading
42        terminal input; control over terminal and <B>curses</B> input and
43        output  options;   environment   query   routines;   color
44        manipulation;   use   of   soft   label   keys;   terminfo
45        capabilities;   and   access   to   low-level    terminal-
46        manipulation routines.
47
48        To initialize the routines, the routine <B>initscr</B> or <B>newterm</B>
49        must be called before any of the other routines that  deal
50        with  windows  and  screens  are used.  The routine <B>endwin</B>
51        must be called before exiting.  To get character-at-a-time
52        input  without  echoing (most interactive, screen oriented
53        programs want this),  the  following  sequence  should  be
54        used:
55
56              <B>initscr();</B> <B>cbreak();</B> <B>noecho();</B>
57
58        Most programs would additionally use the sequence:
59
60              <B>nonl();</B>
61              <B>intrflush(stdscr,</B> <B>FALSE);</B>
62              <B>keypad(stdscr,</B> <B>TRUE);</B>
63
64        Before  a  <B>curses</B>  program  is  run,  the tab stops of the
65        terminal should be set and its initialization strings,  if
66        defined,  must  be  output.  This can be done by executing
67        the <B>tput</B> <B>init</B> command after the shell environment variable
68        <B>TERM</B>  has  been  exported.  <B>tset(1)</B> is usually responsible
69        for doing this.  [See <B><A HREF="terminfo.5.html">terminfo(5)</A></B> for further details.]
70
71        The  <B>ncurses</B>  library   permits   manipulation   of   data
72        structures,  called  <I>windows</I>,  which  can be thought of as
73        two-dimensional arrays of characters representing  all  or
74        part  of  a  CRT  screen.  A default window called <B>stdscr</B>,
75        which is the size of the  terminal  screen,  is  supplied.
76        Others may be created with <B>newwin</B>.
77
78        Note  that  <B>curses</B>  does  not  handle overlapping windows,
79        that's done by the <B><A HREF="panel.3x.html">panel(3x)</A></B> library. This means that  you
80        can  either  use  <B>stdscr</B>  or  divide the screen into tiled
81        windows and not using <B>stdscr</B> at all. Mixing the  two  will
82        result in unpredictable, and undesired, effects.
83
84        Windows are referred to by variables declared as <B>WINDOW</B> <B>*</B>.
85        These  data  structures  are  manipulated  with   routines
86        described  here and elsewhere in the <B>ncurses</B> manual pages.
87        Among which the most basic routines are  <B>move</B>  and  <B>addch</B>.
88        More  general versions of these routines are included with
89        names beginning with <B>w</B>, allowing the  user  to  specify  a
90        window.  The routines not beginning with <B>w</B> affect <B>stdscr</B>.)
91
92        After using routines to manipulate a  window,  <B>refresh</B>  is
93        called,  telling <B>curses</B> to make the user's CRT screen look
94        like <B>stdscr</B>.  The characters in a window are  actually  of
95        type  <B>chtype</B>, (character and attribute data) so that other
96        information about the character may also  be  stored  with
97        each character.
98
99        Special  windows  called  <I>pads</I>  may  also  be manipulated.
100        These are windows which are not constrained to the size of
101        the  screen  and  whose  contents  need  not be completely
102        displayed.  See <B><A HREF="curs_pad.3x.html">curs_pad(3x)</A></B> for more information.
103
104        In addition to drawing characters  on  the  screen,  video
105        attributes  and  colors  may  be  supported,  causing  the
106        characters to show up in  such  modes  as  underlined,  in
107        reverse  video, or in color on terminals that support such
108        display enhancements.   Line  drawing  characters  may  be
109        specified  to be output.  On input, <B>curses</B> is also able to
110        translate arrow and function  keys  that  transmit  escape
111        sequences  into single values.  The video attributes, line
112        drawing characters, and input values use names, defined in
113        <B>&lt;curses.h&gt;</B>, such as <B>A_REVERSE</B>, <B>ACS_HLINE</B>, and <B>KEY_LEFT</B>.
114
115        If the environment variables <B>LINES</B> and <B>COLUMNS</B> are set, or
116        if the program is executing in a window environment,  line
117        and  column  information  in the environment will override
118        information read by <I>terminfo</I>.  This would effect a program
119        running  in an AT&amp;T 630 layer, for example, where the size
120        of a screen is changeable (see <B>ENVIRONMENT</B>).
121
122        If the  environment  variable  <B>TERMINFO</B>  is  defined,  any
123        program   using   <B>curses</B>   checks  for  a  local  terminal
124        definition before checking in  the  standard  place.   For
125        example,  if  <B>TERM</B>  is  set  to <B>att4424</B>, then the compiled
126        terminal definition is found in
127
128              <B>/usr/share/terminfo/a/att4424</B>.
129
130        (The <B>a</B> is copied from the first letter of <B>att4424</B> to avoid
131        creation  of  huge  directories.)  However, if <B>TERMINFO</B> is
132        set to <B>$HOME/myterms</B>, <B>curses</B> first checks
133
134              <B>$HOME/myterms/a/att4424</B>,
135
136        and if that fails, it then checks
137
138              <B>/usr/share/terminfo/a/att4424</B>.
139
140        This is useful for developing experimental definitions  or
141        when   write  permission  in  <B>/usr/share/terminfo</B>  is  not
142        available.
143
144        The integer  variables  <B>LINES</B>  and  <B>COLS</B>  are  defined  in
145        <B>&lt;curses.h&gt;</B>  and will be filled in by <B>initscr</B> with the size
146        of the screen.  The constants  <B>TRUE</B>  and  <B>FALSE</B>  have  the
147        values <B>1</B> and <B>0</B>, respectively.
148
149        The  <B>curses</B>  routines  also  define  the <B>WINDOW</B> <B>*</B> variable
150        <B>curscr</B> which is used for certain low-level operations like
151        clearing  and  redrawing a screen containing garbage.  The
152        <B>curscr</B> can be used in only a few routines.
153
154
155    <B>Routine</B> <B>and</B> <B>Argument</B> <B>Names</B>
156        Many <B>curses</B> routines  have  two  or  more  versions.   The
157        routines  prefixed  with <B>w</B> require a window argument.  The
158        routines prefixed with <B>p</B> require a  pad  argument.   Those
159        without a prefix generally use <B>stdscr</B>.
160
161        The routines prefixed with <B>mv</B> require a <I>y</I> and <I>x</I> coordinate
162        to move to before performing the appropriate action.   The
163        <B>mv</B>  routines  imply  a call to <B>move</B> before the call to the
164        other routine.  The coordinate <I>y</I> always refers to the  row
165        (of  the  window), and <I>x</I> always refers to the column.  The
166        upper left-hand corner is always (0,0), not (1,1).
167
168        The routines prefixed with <B>mvw</B> take both a window argument
169        and  <I>x</I>  and  <I>y</I> coordinates.  The window argument is always
170        specified before the coordinates.
171
172        In each case, <I>win</I> is the window affected, and <I>pad</I>  is  the
173        pad  affected;  <I>win</I>  and  <I>pad</I>  are always pointers to type
174        <B>WINDOW</B>.
175
176        Option setting routines require a Boolean flag <I>bf</I> with the
177        value  <B>TRUE</B>  or  <B>FALSE</B>;  <I>bf</I>  is  always of type <B>bool</B>.  The
178        variables <I>ch</I> and <I>attrs</I> below are always  of  type  <B>chtype</B>.
179        The  types <B>WINDOW</B>, <B>SCREEN</B>, <B>bool</B>, and <B>chtype</B> are defined in
180        <B>&lt;curses.h&gt;</B>.  The type <B>TERMINAL</B>  is  defined  in  <B>&lt;term.h&gt;</B>.
181        All other arguments are integers.
182
183
184    <B>Routine</B> <B>Name</B> <B>Index</B>
185        The following table lists each <B>curses</B> routine and the name
186        of the manual page on which  it  is  described.   Routines
187        flagged  with  `*'  are ncurses-specific, not described by
188        XPG4 or present in SVr4.
189
190               <B>curses</B> Routine Name     Manual Page Name
191               --------------------------------------------
192               COLOR_PAIR              <B><A HREF="curs_color.3x.html">curs_color(3x)</A></B>
193               PAIR_NUMBER             <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
194               _nc_tracebits           <B><A HREF="curs_trace.3x.html">curs_trace(3x)</A></B>*
195               _traceattr              <B><A HREF="curs_trace.3x.html">curs_trace(3x)</A></B>*
196               _traceattr2             <B><A HREF="curs_trace.3x.html">curs_trace(3x)</A></B>*
197               _tracechar              <B><A HREF="curs_trace.3x.html">curs_trace(3x)</A></B>*
198               _tracechtype            <B><A HREF="curs_trace.3x.html">curs_trace(3x)</A></B>*
199               _tracechtype2           <B><A HREF="curs_trace.3x.html">curs_trace(3x)</A></B>*
200               _tracedump              <B><A HREF="curs_trace.3x.html">curs_trace(3x)</A></B>*
201               _tracef                 <B><A HREF="curs_trace.3x.html">curs_trace(3x)</A></B>*
202               _tracemouse             <B><A HREF="curs_trace.3x.html">curs_trace(3x)</A></B>*
203               addch                   <B><A HREF="curs_addch.3x.html">curs_addch(3x)</A></B>
204               addchnstr               <B><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></B>
205               addchstr                <B><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></B>
206               addnstr                 <B><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></B>
207               addstr                  <B><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></B>
208               assume_default_colors   <B><A HREF="default_colors.3x.html">default_colors(3x)</A></B>*
209               attr_get                <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
210               attr_off                <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
211               attr_on                 <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
212               attr_set                <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
213               attroff                 <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
214               attron                  <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
215               attrset                 <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
216               baudrate                <B><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></B>
217               beep                    <B><A HREF="curs_beep.3x.html">curs_beep(3x)</A></B>
218               bkgd                    <B><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></B>
219               bkgdset                 <B><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></B>
220               border                  <B><A HREF="curs_border.3x.html">curs_border(3x)</A></B>
221               box                     <B><A HREF="curs_border.3x.html">curs_border(3x)</A></B>
222               can_change_color        <B><A HREF="curs_color.3x.html">curs_color(3x)</A></B>
223               cbreak                  <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
224               chgat                   <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
225               clear                   <B><A HREF="curs_clear.3x.html">curs_clear(3x)</A></B>
226
227               clearok                 <B><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></B>
228               clrtobot                <B><A HREF="curs_clear.3x.html">curs_clear(3x)</A></B>
229               clrtoeol                <B><A HREF="curs_clear.3x.html">curs_clear(3x)</A></B>
230               color_content           <B><A HREF="curs_color.3x.html">curs_color(3x)</A></B>
231               color_set               <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
232               copywin                 <B><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></B>
233               curs_set                <B><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></B>
234               curses_version          <B><A HREF="curs_extend.3x.html">curs_extend(3x)</A></B>*
235               def_prog_mode           <B><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></B>
236               def_shell_mode          <B><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></B>
237               define_key              <B><A HREF="define_key.3x.html">define_key(3x)</A></B>*
238               del_curterm             <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
239               delay_output            <B><A HREF="curs_util.3x.html">curs_util(3x)</A></B>
240               delch                   <B><A HREF="curs_delch.3x.html">curs_delch(3x)</A></B>
241               deleteln                <B><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></B>
242               delscreen               <B><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></B>
243               delwin                  <B><A HREF="curs_window.3x.html">curs_window(3x)</A></B>
244               derwin                  <B><A HREF="curs_window.3x.html">curs_window(3x)</A></B>
245               doupdate                <B><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></B>
246               dupwin                  <B><A HREF="curs_window.3x.html">curs_window(3x)</A></B>
247               echo                    <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
248               echochar                <B><A HREF="curs_addch.3x.html">curs_addch(3x)</A></B>
249               endwin                  <B><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></B>
250               erase                   <B><A HREF="curs_clear.3x.html">curs_clear(3x)</A></B>
251               erasechar               <B><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></B>
252               filter                  <B><A HREF="curs_util.3x.html">curs_util(3x)</A></B>
253               flash                   <B><A HREF="curs_beep.3x.html">curs_beep(3x)</A></B>
254               flushinp                <B><A HREF="curs_util.3x.html">curs_util(3x)</A></B>
255               getbegyx                <B><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></B>
256               getbkgd                 <B><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></B>
257               getch                   <B><A HREF="curs_getch.3x.html">curs_getch(3x)</A></B>
258               getmaxyx                <B><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></B>
259               getmouse                <B><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></B>*
260               getnstr                 <B><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></B>
261               getparyx                <B><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></B>
262               getstr                  <B><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></B>
263               getsyx                  <B><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></B>
264               getwin                  <B><A HREF="curs_util.3x.html">curs_util(3x)</A></B>
265               getyx                   <B><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></B>
266               halfdelay               <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
267               has_colors              <B><A HREF="curs_color.3x.html">curs_color(3x)</A></B>
268               has_ic                  <B><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></B>
269               has_il                  <B><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></B>
270               has_key                 <B><A HREF="curs_getch.3x.html">curs_getch(3x)</A></B>*
271               hline                   <B><A HREF="curs_border.3x.html">curs_border(3x)</A></B>
272               idcok                   <B><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></B>
273               idlok                   <B><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></B>
274               immedok                 <B><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></B>
275               inch                    <B><A HREF="curs_inch.3x.html">curs_inch(3x)</A></B>
276               inchnstr                <B><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></B>
277               inchstr                 <B><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></B>
278               init_color              <B><A HREF="curs_color.3x.html">curs_color(3x)</A></B>
279               init_pair               <B><A HREF="curs_color.3x.html">curs_color(3x)</A></B>
280
281               initscr                 <B><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></B>
282               innstr                  <B><A HREF="curs_instr.3x.html">curs_instr(3x)</A></B>
283               insch                   <B><A HREF="curs_insch.3x.html">curs_insch(3x)</A></B>
284               insdelln                <B><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></B>
285               insertln                <B><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></B>
286               insnstr                 <B><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></B>
287               insstr                  <B><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></B>
288               instr                   <B><A HREF="curs_instr.3x.html">curs_instr(3x)</A></B>
289               intrflush               <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
290               is_linetouched          <B><A HREF="curs_touch.3x.html">curs_touch(3x)</A></B>
291               is_wintouched           <B><A HREF="curs_touch.3x.html">curs_touch(3x)</A></B>
292               isendwin                <B><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></B>
293               keybound                <B><A HREF="keybound.3x.html">keybound(3x)</A></B>*
294               keyname                 <B><A HREF="curs_util.3x.html">curs_util(3x)</A></B>
295               keyok                   <B><A HREF="keyok.3x.html">keyok(3x)</A></B>*
296               keypad                  <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
297               killchar                <B><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></B>
298               leaveok                 <B><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></B>
299               longname                <B><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></B>
300               mcprint                 <B><A HREF="curs_print.3x.html">curs_print(3x)</A></B>*
301               meta                    <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
302               mouse_trafo             <B><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></B>*
303               mouseinterval           <B><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></B>*
304               mousemask               <B><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></B>*
305               move                    <B><A HREF="curs_move.3x.html">curs_move(3x)</A></B>
306               mvaddch                 <B><A HREF="curs_addch.3x.html">curs_addch(3x)</A></B>
307               mvaddchnstr             <B><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></B>
308               mvaddchstr              <B><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></B>
309               mvaddnstr               <B><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></B>
310               mvaddstr                <B><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></B>
311               mvchgat                 <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
312               mvcur                   <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
313               mvdelch                 <B><A HREF="curs_delch.3x.html">curs_delch(3x)</A></B>
314               mvderwin                <B><A HREF="curs_window.3x.html">curs_window(3x)</A></B>
315               mvgetch                 <B><A HREF="curs_getch.3x.html">curs_getch(3x)</A></B>
316               mvgetnstr               <B><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></B>
317               mvgetstr                <B><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></B>
318               mvhline                 <B><A HREF="curs_border.3x.html">curs_border(3x)</A></B>
319               mvinch                  <B><A HREF="curs_inch.3x.html">curs_inch(3x)</A></B>
320               mvinchnstr              <B><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></B>
321               mvinchstr               <B><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></B>
322               mvinnstr                <B><A HREF="curs_instr.3x.html">curs_instr(3x)</A></B>
323               mvinsch                 <B><A HREF="curs_insch.3x.html">curs_insch(3x)</A></B>
324               mvinsnstr               <B><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></B>
325               mvinsstr                <B><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></B>
326               mvinstr                 <B><A HREF="curs_instr.3x.html">curs_instr(3x)</A></B>
327               mvprintw                <B><A HREF="curs_printw.3x.html">curs_printw(3x)</A></B>
328               mvscanw                 <B><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></B>
329               mvvline                 <B><A HREF="curs_border.3x.html">curs_border(3x)</A></B>
330               mvwaddch                <B><A HREF="curs_addch.3x.html">curs_addch(3x)</A></B>
331               mvwaddchnstr            <B><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></B>
332               mvwaddchstr             <B><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></B>
333               mvwaddnstr              <B><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></B>
334
335               mvwaddstr               <B><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></B>
336               mvwchgat                <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
337               mvwdelch                <B><A HREF="curs_delch.3x.html">curs_delch(3x)</A></B>
338               mvwgetch                <B><A HREF="curs_getch.3x.html">curs_getch(3x)</A></B>
339               mvwgetnstr              <B><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></B>
340               mvwgetstr               <B><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></B>
341               mvwhline                <B><A HREF="curs_border.3x.html">curs_border(3x)</A></B>
342               mvwin                   <B><A HREF="curs_window.3x.html">curs_window(3x)</A></B>
343               mvwinch                 <B><A HREF="curs_inch.3x.html">curs_inch(3x)</A></B>
344               mvwinchnstr             <B><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></B>
345               mvwinchstr              <B><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></B>
346               mvwinnstr               <B><A HREF="curs_instr.3x.html">curs_instr(3x)</A></B>
347               mvwinsch                <B><A HREF="curs_insch.3x.html">curs_insch(3x)</A></B>
348               mvwinsnstr              <B><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></B>
349               mvwinsstr               <B><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></B>
350               mvwinstr                <B><A HREF="curs_instr.3x.html">curs_instr(3x)</A></B>
351               mvwprintw               <B><A HREF="curs_printw.3x.html">curs_printw(3x)</A></B>
352               mvwscanw                <B><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></B>
353               mvwvline                <B><A HREF="curs_border.3x.html">curs_border(3x)</A></B>
354               napms                   <B><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></B>
355               newpad                  <B><A HREF="curs_pad.3x.html">curs_pad(3x)</A></B>
356               newterm                 <B><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></B>
357               newwin                  <B><A HREF="curs_window.3x.html">curs_window(3x)</A></B>
358               nl                      <B><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></B>
359               nocbreak                <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
360               nodelay                 <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
361               noecho                  <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
362               nonl                    <B><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></B>
363               noqiflush               <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
364               noraw                   <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
365               notimeout               <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
366               overlay                 <B><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></B>
367               overwrite               <B><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></B>
368               pair_content            <B><A HREF="curs_color.3x.html">curs_color(3x)</A></B>
369               pechochar               <B><A HREF="curs_pad.3x.html">curs_pad(3x)</A></B>
370               pnoutrefresh            <B><A HREF="curs_pad.3x.html">curs_pad(3x)</A></B>
371               prefresh                <B><A HREF="curs_pad.3x.html">curs_pad(3x)</A></B>
372               printw                  <B><A HREF="curs_printw.3x.html">curs_printw(3x)</A></B>
373               putp                    <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
374               putwin                  <B><A HREF="curs_util.3x.html">curs_util(3x)</A></B>
375               qiflush                 <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
376               raw                     <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
377               redrawwin               <B><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></B>
378               refresh                 <B><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></B>
379               reset_prog_mode         <B><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></B>
380               reset_shell_mode        <B><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></B>
381               resetty                 <B><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></B>
382               resizeterm              <B><A HREF="resizeterm.3x.html">resizeterm(3x)</A></B>*
383               restartterm             <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
384               ripoffline              <B><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></B>
385               savetty                 <B><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></B>
386               scanw                   <B><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></B>
387               scr_dump                <B><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></B>
388
389               scr_init                <B><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></B>
390               scr_restore             <B><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></B>
391               scr_set                 <B><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></B>
392               scrl                    <B><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></B>
393               scroll                  <B><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></B>
394               scrollok                <B><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></B>
395               set_curterm             <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
396               set_term                <B><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></B>
397               setscrreg               <B><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></B>
398               setsyx                  <B><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></B>
399               setterm                 <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
400               setupterm               <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
401               slk_attr                <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>*
402               slk_attr_off            <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
403               slk_attr_on             <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
404               slk_attr_set            <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
405               slk_attroff             <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
406               slk_attron              <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
407               slk_attrset             <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
408               slk_clear               <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
409               slk_color               <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
410               slk_init                <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
411               slk_label               <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
412               slk_noutrefresh         <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
413               slk_refresh             <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
414               slk_restore             <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
415               slk_set                 <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
416               slk_touch               <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>
417               standend                <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
418               standout                <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
419               start_color             <B><A HREF="curs_color.3x.html">curs_color(3x)</A></B>
420               subpad                  <B><A HREF="curs_pad.3x.html">curs_pad(3x)</A></B>
421               subwin                  <B><A HREF="curs_window.3x.html">curs_window(3x)</A></B>
422               syncok                  <B><A HREF="curs_window.3x.html">curs_window(3x)</A></B>
423               termattrs               <B><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></B>
424               termname                <B><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></B>
425               tgetent                 <B><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></B>
426               tgetflag                <B><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></B>
427               tgetnum                 <B><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></B>
428               tgetstr                 <B><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></B>
429               tgoto                   <B><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></B>
430               tigetflag               <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
431               tigetnum                <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
432               tigetstr                <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
433               timeout                 <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
434               touchline               <B><A HREF="curs_touch.3x.html">curs_touch(3x)</A></B>
435               touchwin                <B><A HREF="curs_touch.3x.html">curs_touch(3x)</A></B>
436               tparm                   <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
437               tputs                   <B><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></B>
438               tputs                   <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
439               trace                   <B><A HREF="curs_trace.3x.html">curs_trace(3x)</A></B>*
440               typeahead               <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
441               unctrl                  <B><A HREF="curs_util.3x.html">curs_util(3x)</A></B>
442
443               ungetch                 <B><A HREF="curs_getch.3x.html">curs_getch(3x)</A></B>
444               ungetmouse              <B><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></B>*
445               untouchwin              <B><A HREF="curs_touch.3x.html">curs_touch(3x)</A></B>
446               use_default_colors      <B><A HREF="default_colors.3x.html">default_colors(3x)</A></B>*
447               use_env                 <B><A HREF="curs_util.3x.html">curs_util(3x)</A></B>
448               use_extended_names      <B><A HREF="curs_extend.3x.html">curs_extend(3x)</A></B>*
449               vidattr                 <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
450               vidputs                 <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
451               vline                   <B><A HREF="curs_border.3x.html">curs_border(3x)</A></B>
452               vw_printw               <B><A HREF="curs_printw.3x.html">curs_printw(3x)</A></B>
453               vw_scanw                <B><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></B>
454               vwprintw                <B><A HREF="curs_printw.3x.html">curs_printw(3x)</A></B>
455               vwscanw                 <B><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></B>
456               waddch                  <B><A HREF="curs_addch.3x.html">curs_addch(3x)</A></B>
457               waddchnstr              <B><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></B>
458               waddchstr               <B><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></B>
459               waddnstr                <B><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></B>
460               waddstr                 <B><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></B>
461               wattr_get               <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
462               wattr_off               <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
463               wattr_on                <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
464               wattr_set               <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
465               wattroff                <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
466               wattron                 <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
467               wattrset                <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
468               wbkgd                   <B><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></B>
469               wbkgdset                <B><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></B>
470               wborder                 <B><A HREF="curs_border.3x.html">curs_border(3x)</A></B>
471               wchgat                  <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
472               wclear                  <B><A HREF="curs_clear.3x.html">curs_clear(3x)</A></B>
473               wclrtobot               <B><A HREF="curs_clear.3x.html">curs_clear(3x)</A></B>
474               wclrtoeol               <B><A HREF="curs_clear.3x.html">curs_clear(3x)</A></B>
475               wcolor_set              <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
476               wcursyncup              <B><A HREF="curs_window.3x.html">curs_window(3x)</A></B>
477               wdelch                  <B><A HREF="curs_delch.3x.html">curs_delch(3x)</A></B>
478               wdeleteln               <B><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></B>
479               wechochar               <B><A HREF="curs_addch.3x.html">curs_addch(3x)</A></B>
480               wenclose                <B><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></B>*
481               werase                  <B><A HREF="curs_clear.3x.html">curs_clear(3x)</A></B>
482               wgetch                  <B><A HREF="curs_getch.3x.html">curs_getch(3x)</A></B>
483               wgetnstr                <B><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></B>
484               wgetstr                 <B><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></B>
485               whline                  <B><A HREF="curs_border.3x.html">curs_border(3x)</A></B>
486               winch                   <B><A HREF="curs_inch.3x.html">curs_inch(3x)</A></B>
487               winchnstr               <B><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></B>
488               winchstr                <B><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></B>
489               winnstr                 <B><A HREF="curs_instr.3x.html">curs_instr(3x)</A></B>
490               winsch                  <B><A HREF="curs_insch.3x.html">curs_insch(3x)</A></B>
491               winsdelln               <B><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></B>
492               winsertln               <B><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></B>
493               winsnstr                <B><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></B>
494               winsstr                 <B><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></B>
495               winstr                  <B><A HREF="curs_instr.3x.html">curs_instr(3x)</A></B>
496
497               wmouse_trafo            <B><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></B>*
498               wmove                   <B><A HREF="curs_move.3x.html">curs_move(3x)</A></B>
499               wnoutrefresh            <B><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></B>
500               wprintw                 <B><A HREF="curs_printw.3x.html">curs_printw(3x)</A></B>
501               wredrawln               <B><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></B>
502               wrefresh                <B><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></B>
503               wresize                 <B><A HREF="wresize.3x.html">wresize(3x)</A></B>*
504               wscanw                  <B><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></B>
505               wscrl                   <B><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></B>
506               wsetscrreg              <B><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></B>
507               wstandend               <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
508               wstandout               <B><A HREF="curs_attr.3x.html">curs_attr(3x)</A></B>
509               wsyncdown               <B><A HREF="curs_window.3x.html">curs_window(3x)</A></B>
510               wsyncup                 <B><A HREF="curs_window.3x.html">curs_window(3x)</A></B>
511               wtimeout                <B><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></B>
512               wtouchln                <B><A HREF="curs_touch.3x.html">curs_touch(3x)</A></B>
513               wvline                  <B><A HREF="curs_border.3x.html">curs_border(3x)</A></B>
514
515
516 </PRE>
517 <H2>RETURN VALUE</H2><PRE>
518        Routines that return an integer return  <B>ERR</B>  upon  failure
519        and  an  integer  value  other  than  <B>ERR</B>  upon successful
520        completion,  unless  otherwise  noted   in   the   routine
521        descriptions.
522
523        All  macros  return  the  value  of  the <B>w</B> version, except
524        <B>setscrreg</B>, <B>wsetscrreg</B>,  <B>getyx</B>,  <B>getbegyx</B>,  <B>getmaxyx</B>.   The
525        return  values  of <B>setscrreg</B>, <B>wsetscrreg</B>, <B>getyx</B>, <B>getbegyx</B>,
526        and <B>getmaxyx</B> are undefined (<I>i</I>.<I>e</I>., these should not be used
527        as the right-hand side of assignment statements).
528
529        Routines that return pointers return <B>NULL</B> on error.
530
531
532 </PRE>
533 <H2>ENVIRONMENT</H2><PRE>
534        The   following   environment   symbols   are  useful  for
535        customizing the runtime behavior of the  <B>ncurses</B>  library.
536        The  most  important  ones  have been already discussed in
537        detail.
538
539        BAUDRATE
540             The debugging library checks this environment  symbol
541             when the application has redirected output to a file.
542             The symbol's numeric value is used for the  baudrate.
543             If  no value is found <B>ncurses</B> uses 9600.  This allows
544             testers to construct repeatable test-cases that  take
545             into account costs that depend on baudrate.
546
547        CC   When set, change occurrences of the command_character
548             (i.e., the <B>cmdch</B> capability) of the  loaded  terminfo
549             entries  to  the  value  of  this  symbol.   Very few
550             terminfo entries provide this feature.
551
552        COLUMNS
553             Specify  the  width  of  the  screen  in  characters.
554             Applications   running  in  a  windowing  environment
555             usually are able to obtain the width of the window in
556             which  they  are  executing.  If neither the $COLUMNS
557             value nor the terminal's screen  size  is  available,
558             <B>ncurses</B>  uses  the size which may be specified in the
559             terminfo database (i.e., the <B>cols</B> capability).
560
561             It is important that your application use  a  correct
562             size  for  the  screen.   However, this is not always
563             possible because your application may be running on a
564             host  which  does  not honor NAWS (Negotiations About
565             Window Size), or because you are temporarily  running
566             as another user.
567
568             Either  COLUMNS  or  LINES  symbols  may be specified
569             independently.  This is mainly useful  to  circumvent
570             legacy  misfeatures  of  terminal descriptions, e.g.,
571             xterm which commonly specifies a 65 line screen.  For
572             best  results, <B>lines</B> and <B>cols</B> should not be specified
573             in a terminal description for terminals which are run
574             as emulations.
575
576             Use the <B>use_env</B> function to disable this feature.
577
578        ESCDELAY
579             Specifies  the total time, in milliseconds, for which
580             ncurses will await  a  character  sequence,  e.g.,  a
581             function  key.  The default value, 1000 milliseconds,
582             is enough for most  uses.   However,  it  is  made  a
583             variable to accommodate unusual applications.
584
585             The most common instance where you may wish to change
586             this value is to work with slow hosts, e.g.,  running
587             on  a  network.   If  the host cannot read characters
588             rapidly enough, it will have the same  effect  as  if
589             the  terminal did not send characters rapidly enough.
590             The library will still see a timeout.
591
592             Note that  xterm  mouse  events  are  built  up  from
593             character sequences received from the xterm.  If your
594             application makes heavy use of multiple-clicking, you
595             may  wish  to lengthen this default value because the
596             timeout applies to the composed multi-click event  as
597             well as the individual clicks.
598
599        HOME Tells  <B>ncurses</B> where your home directory is.  That is
600             where  it  may  read  and  write  auxiliary  terminal
601             descriptions:
602
603             $HOME/.termcap
604             $HOME/.terminfo
605
606        LINES
607             Like  COLUMNS,  specify  the  height of the screen in
608             characters.  See COLUMNS for a detailed  description.
609
610        MOUSE_BUTTONS_123
611             This applies only to the OS/2 EMX port.  It specifies
612             the order of buttons on the mouse.   OS/2  numbers  a
613             3-button mouse inconsistently from other platforms:
614
615             1 = left
616             2 = right
617             3 = middle.
618
619             This symbol lets you customize the mouse.  The symbol
620             must be three numeric digits 1-3 in any order,  e.g.,
621             123  or  321.   If  it is not specified, <B>ncurses</B> uses
622             132.
623
624        NCURSES_NO_PADDING
625             Most of the terminal  descriptions  in  the  terminfo
626             database  are  written for real "hardware" terminals.
627             Many people use terminal emulators  which  run  in  a
628             windowing    environment    and    use   curses-based
629             applications.  Terminal emulators can  duplicate  all
630             of  the important aspects of a hardware terminal, but
631             they do not have the  same  limitations.   The  chief
632             limitation of a hardware terminal from the standpoint
633             of your application is the  management  of  dataflow,
634             i.e.,   timing.    Unless   a  hardware  terminal  is
635             interfaced into a terminal concentrator  (which  does
636             flow  control),  it (or your application) must manage
637             dataflow, preventing overruns.  The cheapest solution
638             (no  hardware cost) is for your program to do this by
639             pausing  after  operations  that  the  terminal  does
640             slowly, such as clearing the display.
641
642             As  a  result,  many terminal descriptions (including
643             the vt100) have delay times embedded.  You  may  wish
644             to  use  these  descriptions, but not want to pay the
645             performance penalty.
646
647             Set the NCURSES_NO_PADDING symbol to disable all  but
648             mandatory  padding.   Mandatory  padding is used as a
649             part of special control sequences such as <I>flash</I>.
650
651        NCURSES_NO_SETBUF
652             Normally  <B>ncurses</B>  enables  buffered  output   during
653             terminal  initialization.   This  is done (as in SVr4
654             curses)  for  performance   reasons.    For   testing
655             purposes,  both  of <B>ncurses</B> and certain applications,
656             this  feature  is   made   optional.    Setting   the
657             NCURSES_NO_SETBUF variable disables output buffering,
658             leaving the output  in  the  original  (usually  line
659             buffered) mode.
660
661        NCURSES_TRACE
662             During  initialization, the <B>ncurses</B> debugging library
663             checks the NCURSES_TRACE symbol.  If it  is  defined,
664             to a numeric value, <B>ncurses</B> calls the <B>trace</B> function,
665             using that value as the argument.
666
667             The argument values, which are defined  in  <B>curses.h</B>,
668             provide  several  types of information.  When running
669             with traces enabled, your application will write  the
670             file <B>trace</B> to the current directory.
671
672        TERM Denotes  your  terminal  type.  Each terminal type is
673             distinct, though many are similar.
674
675        TERMCAP
676             If the  <B>ncurses</B>  library  has  been  configured  with
677             <I>termcap</I>  support, <B>ncurses</B> will check for a terminal's
678             description in termcap form if it is not available in
679             the terminfo database.
680
681             The   TERMCAP   symbol  contains  either  a  terminal
682             description (with newlines stripped out), or  a  file
683             name  telling  where  the  information denoted by the
684             TERM symbol  exists.   In  either  case,  setting  it
685             directs  <B>ncurses</B>  to  ignore the usual place for this
686             information, e.g., /etc/termcap.
687
688        TERMINFO
689             Overrides the directory in which <B>ncurses</B> searches for
690             your terminal description.  This is the simplest, but
691             not the only way to change the list  of  directories.
692             The complete list of directories in order follows:
693
694             -  the last directory to which <B>ncurses</B> wrote, if any,
695                is searched first.
696
697             -  the directory specified by the TERMINFO symbol
698
699             -  $HOME/.terminfo
700
701             -  directories listed in the TERMINFO_DIRS symbol
702
703             -  one or more directories whose names are configured
704                and  compiled  into  the  ncurses  library,  e.g.,
705                /usr/share/terminfo
706
707        TERMINFO_DIRS
708             Specifies  a  list  of  directories  to  search   for
709             terminal  descriptions.   The  list  is  separated by
710             colons (i.e., ":").  All of the terminal descriptions
711             are  in  terminfo  form,  which  makes a subdirectory
712             named for the first  letter  of  the  terminal  names
713             therein.
714
715        TERMPATH
716             If  TERMCAP  does  not  hold a file name then <B>ncurses</B>
717             checks the  TERMPATH  symbol.   This  is  a  list  of
718             filenames  separated  by  colons (i.e., ":").  If the
719             TERMPATH symbol is not  set,  <B>ncurses</B>  looks  in  the
720             files   /etc/termcap,   /usr/share/misc/termcap   and
721             $HOME/.termcap, in that order.
722
723        The library may be configured to disregard  the  following
724        variables  when  the current user is the superuser (root),
725        or if the application uses setuid or  setgid  permissions:
726        $TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as $HOME.
727
728
729 </PRE>
730 <H2>FILES</H2><PRE>
731        /usr/share/tabset
732             directory  containing  initialization  files  for the
733             terminal  capability   database   /usr/share/terminfo
734             terminal capability database
735
736
737 </PRE>
738 <H2>SEE ALSO</H2><PRE>
739        <B><A HREF="terminfo.5.html">terminfo(5)</A></B>  and  3x  pages  whose names begin "curs_" for
740        detailed routine descriptions.
741
742
743 </PRE>
744 <H2>EXTENSIONS</H2><PRE>
745        The  <B>ncurses</B>  library  can  be  compiled  with  an  option
746        (<B>-DUSE_GETCAP</B>)   that   falls   back   to   the  old-style
747        /etc/termcap file if the terminal setup code cannot find a
748        terminfo entry corresponding to <B>TERM</B>.  Use of this feature
749        is not recommended, as it essentially includes  an  entire
750        termcap   compiler   in   the  <B>ncurses</B>  startup  code,  at
751        significant cost in core and startup cycles.
752
753        The <B>ncurses</B>  library  includes  facilities  for  capturing
754        mouse  events  on certain terminals (including xterm). See
755        the <B><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></B> manual page for details.
756
757        The <B>ncurses</B> library includes facilities for responding  to
758        window  resizing  events,  e.g., when running in an xterm.
759        See the <B><A HREF="resizeterm.3x.html">resizeterm(3x)</A></B> and <B><A HREF="wresize.3x.html">wresize(3x)</A></B>  manual  pages  for
760        details.   In addition, the library may be configured with
761        a SIGWINCH handler.
762
763        The <B>ncurses</B> library extends the fixed set of function  key
764        capabilities  of  terminals  by  allowing  the application
765        designer to define additional key  sequences  at  runtime.
766        See  the  <B><A HREF="define_key.3x.html">define_key(3x)</A></B>  and  <B><A HREF="keyok.3x.html">keyok(3x)</A></B>  manual pages for
767        details.
768
769        The  <B>ncurses</B>  library  can  exploit  the  capabilities  of
770        terminals  which  implement the ISO-6429 SGR 39 and SGR 49
771        controls, which allow an application to reset the terminal
772        to  its  original  foreground and background colors.  From
773        the users' perspective, the application is  able  to  draw
774        colored   text   on   a  background  whose  color  is  set
775        independently,  providing  better   control   over   color
776        contrasts.  See the <B><A HREF="use_default_colors.3x.html">use_default_colors(3x)</A></B> manual page for
777        details.
778        The <B>ncurses</B> library  includes  a  function  for  directing
779        application  output  to a printer attached to the terminal
780        device.  See the <B><A HREF="curs_print.3x.html">curs_print(3x)</A></B> manual page for details.
781
782
783 </PRE>
784 <H2>PORTABILITY</H2><PRE>
785        The  <B>ncurses</B>  library  is  intended   to   be   BASE-level
786        conformant with the XSI Curses standard.  Certain portions
787        of the EXTENDED XSI Curses functionality (including  color
788        support) are supported.  The following EXTENDED XSI Curses
789        calls in support of wide (multibyte)  characters  are  not
790        yet   implemented:   <B>add_wch</B>,   <B>add_wchnstr</B>,   <B>add_wchstr</B>,
791        <B>addnwstr</B>, <B>addwstr</B>, <B>bkgrnd</B>, <B>bkgrndset</B>, <B>border_set</B>, <B>box_set</B>,
792        <B>echo_wchar</B>,   <B>erasewchar</B>,  <B>get_wch</B>,  <B>get_wstr</B>,  <B>getbkgrnd</B>,
793        <B>getcchar</B>,  <B>getn_wstr</B>,   <B>getwchtype</B>,   <B>hline_set</B>,   <B>in_wch</B>,
794        <B>in_wchnstr</B>,   <B>in_wchstr</B>,   <B>innwstr</B>,   <B>ins_nwstr</B>,  <B>ins_wch</B>,
795        <B>ins_wstr</B>,   <B>inwchnstr</B>,   <B>inwchstr</B>,    <B>inwstr</B>,    <B>key_name</B>,
796        <B>killwchar</B>,    <B>mvadd_wch</B>,    <B>mvadd_wchnstr</B>,   <B>mvadd_wchstr</B>,
797        <B>mvaddnwstr</B>, <B>mvaddwstr</B>, <B>mvget_wch</B>, <B>mvget_wstr</B>, <B>mvgetn_wstr</B>,
798        <B>mvhline_set</B>,  <B>mvin_wch</B>, <B>mvinnwstr</B>, <B>mvins_nwstr</B>, <B>mvins_wch</B>,
799        <B>mvins_wstr</B>, <B>mvinwchnstr</B>, <B>mvinwchstr</B>, <B>mvinwchstr</B>, <B>mvinwstr</B>,
800        <B>mvvline_set</B>,  <B>mvwadd_wch</B>,  <B>mvwadd_wchnstr</B>,  <B>mvwadd_wchstr</B>,
801        <B>mvwaddnwstr</B>,    <B>mvwaddwstr</B>,     <B>mvwget_ch</B>,     <B>mvwget_wch</B>,
802        <B>mvwget_wstr</B>,    <B>mvwgetn_wstr</B>,   <B>mvwhline_set</B>,   <B>mvwin_wch</B>,
803        <B>mvwin_wchnstr</B>,  <B>mvwin_wchstr</B>,  <B>mvwinnwstr</B>,   <B>mvwins_nwstr</B>,
804        <B>mvwins_wch</B>,    <B>mvwins_wstr</B>,    <B>mvwinwchnstr</B>.    <B>mvwinwstr</B>,
805        <B>mvwvline_set</B>, <B>pecho_wchar</B>, <B>setcchar</B>, <B>slk_wset</B>, <B>term_attrs</B>,
806        <B>unget_wch</B>,   <B>vhline_set</B>,  <B>vid_attr</B>,  <B>vid_puts</B>,  <B>vline_set</B>,
807        <B>wadd_wch</B>, <B>wadd_wchnstr</B>, <B>wadd_wchstr</B>, <B>waddnwstr</B>,  <B>waddwstr</B>,
808        <B>waddwstr</B>,  <B>wbkgrnd</B>,  <B>wbkgrndset</B>,  <B>wbkgrndset</B>, <B>wborder_set</B>,
809        <B>wecho_wchar</B>, <B>wecho_wchar</B>, <B>wget_wch</B>, <B>wget_wstr</B>, <B>wgetbkgrnd</B>,
810        <B>wgetn_wstr</B>,  <B>whline_set</B>, <B>win_wch</B>, <B>win_wchnstr</B>, <B>win_wchstr</B>,
811        <B>winnwstr</B>,  <B>wins_nwstr</B>,  <B>wins_wch</B>,  <B>wins_wstr</B>,  <B>winwchnstr</B>,
812        <B>winwchstr</B>, <B>winwstr</B>, <B>wunctrl</B>, <B>wvline_set</B>,
813
814        A  small  number of local differences (that is, individual
815        differences between the XSI Curses and <B>ncurses</B> calls)  are
816        described  in  <B>PORTABILITY</B>  sections  of  the  library man
817        pages.
818
819        The routine <B>has_key</B> is not part of XPG4, nor is it present
820        in  SVr4.  See the <B><A HREF="curs_getch.3x.html">curs_getch(3x)</A></B> manual page for details.
821
822        The routine <B>slk_attr</B> is  not  part  of  XPG4,  nor  is  it
823        present  in  SVr4.   See  the <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B> manual page for
824        details.
825
826        The    routines    <B>getmouse</B>,    <B>mousemask</B>,     <B>ungetmouse</B>,
827        <B>mouseinterval</B>,  and <B>wenclose</B> relating to mouse interfacing
828        are not part of XPG4, nor are they present in  SVr4.   See
829        the <B><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></B> manual page for details.
830
831        The routine <B>mcprint</B> was not present in any previous curses
832        implementation.  See the <B><A HREF="curs_print.3x.html">curs_print(3x)</A></B>  manual  page  for
833        details.
834        The routine <B>wresize</B> is not part of XPG4, nor is it present
835        in SVr4.  See the <B><A HREF="wresize.3x.html">wresize(3x)</A></B> manual page for details.
836
837        In  historic  curses  versions,  delays  embedded  in  the
838        capabilities   <B>cr</B>,   <B>ind</B>,   <B>cub1</B>,  <B>ff</B>  and  <B>tab</B>  activated
839        corresponding delay bits in the UNIX tty driver.  In  this
840        implementation,  all  padding  is done by NUL sends.  This
841        method  is  slightly  more  expensive,  but  narrows   the
842        interface  to  the UNIX kernel significantly and increases
843        the package's portability correspondingly.
844
845        In the XSI standard and  SVr4  manual  pages,  many  entry
846        points have prototype arguments of the for <B>char</B> <B>*const</B> (or
847        <B>cchar_t</B>  <B>*const</B>,  or  <B>wchar_t</B>  <B>*const</B>,  or  <B>void</B>  <B>*const</B>).
848        Depending  on  one's interpretation of the ANSI C standard
849        (see section 3.5.4.1), these declarations are  either  (a)
850        meaningless,   or   (b)   meaningless  and  illegal.   The
851        declaration <B>const</B> <B>char</B>  <B>*x</B>  is  a  modifiable  pointer  to
852        unmodifiable  data,  but <B>char</B> <B>*const</B> <B>x</B>' is an unmodifiable
853        pointer to modifiable data.  Given that C passes arguments
854        by  value,  <B>&lt;type&gt;</B>  <B>*const</B>  as  a  formal  type is at best
855        dubious.   Some  compilers  choke   on   the   prototypes.
856        Therefore,  in this implementation, they have been changed
857        to <B>const</B> <B>&lt;type&gt;</B> <B>*</B> globally.
858
859
860 </PRE>
861 <H2>NOTES</H2><PRE>
862        The header  file  <B>&lt;curses.h&gt;</B>  automatically  includes  the
863        header files <B>&lt;stdio.h&gt;</B> and <B>&lt;unctrl.h&gt;</B>.
864
865        If  standard  output from a <B>ncurses</B> program is re-directed
866        to something which is not a tty, screen  updates  will  be
867        directed  to  standard  error.   This  was an undocumented
868        feature of AT&amp;T System V Release 3 curses.
869
870
871 </PRE>
872 <H2>AUTHORS</H2><PRE>
873        Zeyd M. Ben-Halim, Eric  S.  Raymond,  Thomas  E.  Dickey.
874        Based on pcurses by Pavel Curtis.
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892 </PRE>
893 <HR>
894 <ADDRESS>
895 Man(1) output converted with
896 <a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
897 </ADDRESS>
898 </BODY>
899 </HTML>