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