]> ncurses.scripts.mit.edu Git - ncurses.git/blob - Ada95/html/ncurses.3x.html
ncurses 4.2
[ncurses.git] / Ada95 / html / ncurses.3x.html
1 <HTML>
2 <BODY BGCOLOR="#99ccbb" TEXT="#000000" LINK="#4060b0" VLINK="#000080" ALINK="#ff4040">
3 <PRE>
4        <STRONG>ncurses</STRONG> - CRT screen handling and optimization package
5
6
7 </PRE>
8 <H2>SYNOPSIS</H2><PRE>
9        <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
10
11
12 </PRE>
13 <H2>DESCRIPTION</H2><PRE>
14        The <STRONG>curses</STRONG> library routines give the user a terminal-inde-
15        pendent method of updating character screens with  reason-
16        able  optimization.  This implementation is ``new curses''
17        (ncurses) and is the approved replacement for 4.4BSD clas-
18        sic curses, which has been discontinued.
19
20        The  <STRONG>ncurses</STRONG>  routines  emulate  the <STRONG><A HREF="ncurses.3x.html">curses(3X)</A></STRONG> library of
21        System V Release 4 UNIX, and the XPG4 curses standard (XSI
22        curses)  but the <STRONG>ncurses</STRONG> library is freely redistributable
23        in source form.  Differences from the SVr4 curses are sum-
24        marized  under  the EXTENSIONS and BUGS sections below and
25        described in detail in the EXTENSIONS and BUGS sections of
26        individual man pages.
27
28        A  program  using  these  routines must be linked with the
29        <STRONG>-lncurses</STRONG> option, or (if it has been generated)  with  the
30        debugging  library  <STRONG>-lncurses_g</STRONG>.   (Your system integrator
31        may also have installed these libraries  under  the  names
32        <STRONG>-lcurses</STRONG> and <STRONG>-lcurses_g</STRONG>.)  The ncurses_g library generates
33        trace logs (in a file called 'trace' in the current direc-
34        tory) that describe curses actions.
35
36        The  <STRONG>ncurses</STRONG>  package supports: overall screen, window and
37        pad manipulation; output to windows and pads; reading ter-
38        minal  input;  control  over terminal and <STRONG>curses</STRONG> input and
39        output options; environment query routines; color  manipu-
40        lation; use of soft label keys; terminfo capabilities; and
41        access to low-level terminal-manipulation routines.
42
43        To initialize the routines, the routine <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>
44        must  be called before any of the other routines that deal
45        with windows and screens are  used.   The  routine  <STRONG>endwin</STRONG>
46        must be called before exiting.  To get character-at-a-time
47        input without echoing (most interactive,  screen  oriented
48        programs  want  this),  the  following  sequence should be
49        used:
50
51              <STRONG>initscr();</STRONG> <STRONG>cbreak();</STRONG> <STRONG>noecho();</STRONG>
52
53        Most programs would additionally use the sequence:
54
55              <STRONG>nonl();</STRONG>
56              <STRONG>intrflush(stdscr,</STRONG> <STRONG>FALSE);</STRONG>
57              <STRONG>keypad(stdscr,</STRONG> <STRONG>TRUE);</STRONG>
58
59        Before a <STRONG>curses</STRONG> program is run, the tab stops of the  ter-
60        the <STRONG>tput</STRONG> <STRONG>init</STRONG> command after the shell environment variable
61        <STRONG>TERM</STRONG> has been exported.  <STRONG>tset(1)</STRONG>  is  usually  responsible
62        for doing this.  [See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for further details.]
63
64        The  <STRONG>curses</STRONG>  library  permits  manipulation of data struc-
65        tures, called <EM>windows</EM>, which can be  thought  of  as  two-
66        dimensional  arrays of characters representing all or part
67        of a CRT screen.  A default window called <STRONG>stdscr</STRONG>, which is
68        the  size of the terminal screen, is supplied.  Others may
69        be created with <STRONG>newwin</STRONG>.
70
71        Note that <STRONG>curses</STRONG>  does  not  handle  overlapping  windows,
72        that's  done by the <STRONG><A HREF="panel.3x.html">panel(3X)</A></STRONG> library. This means that you
73        can either use <STRONG>stdscr</STRONG> or divide the screen into tiled win-
74        dows  and  not  using  <STRONG>stdscr</STRONG>  at all. Mixing the two will
75        result in unpredictable, and undesired, effects.
76
77        Windows are referred to by variables declared as <STRONG>WINDOW</STRONG> <STRONG>*</STRONG>.
78        These   data  structures  are  manipulated  with  routines
79        described here and elsewhere in the <STRONG>ncurses</STRONG> manual  pages.
80        Among  which  the  most basic routines are <STRONG>move</STRONG> and <STRONG>addch</STRONG>.
81        More general versions of these routines are included  with
82        names  beginning  with  <STRONG>w</STRONG>,  allowing the user to specify a
83        window.  The routines not beginning with <STRONG>w</STRONG> affect <STRONG>stdscr</STRONG>.)
84
85        After  using  routines  to manipulate a window, <STRONG>refresh</STRONG> is
86        called, telling <STRONG>curses</STRONG> to make the user's CRT screen  look
87        like  <STRONG>stdscr</STRONG>.   The characters in a window are actually of
88        type <STRONG>chtype</STRONG>, (character and attribute data) so that  other
89        information  about  the  character may also be stored with
90        each character.
91
92        Special windows  called  <EM>pads</EM>  may  also  be  manipulated.
93        These are windows which are not constrained to the size of
94        the screen and whose contents need not be completely  dis-
95        played.  See <STRONG><A HREF="curs_pad.3x.html">curs_pad(3X)</A></STRONG> for more information.
96
97        In  addition  to  drawing  characters on the screen, video
98        attributes and colors may be supported, causing the  char-
99        acters  to show up in such modes as underlined, in reverse
100        video, or in color on terminals that support such  display
101        enhancements.  Line drawing characters may be specified to
102        be output.  On input, <STRONG>curses</STRONG> is  also  able  to  translate
103        arrow  and  function  keys  that transmit escape sequences
104        into single values.  The video  attributes,  line  drawing
105        characters,   and  input  values  use  names,  defined  in
106        <STRONG>&lt;curses.h&gt;</STRONG>, such as <STRONG>A_REVERSE</STRONG>, <STRONG>ACS_HLINE</STRONG>, and <STRONG>KEY_LEFT</STRONG>.
107
108        If the environment variables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> are set, or
109        if  the program is executing in a window environment, line
110        and column information in the  environment  will  override
111        information read by <EM>terminfo</EM>.  This would effect a program
112
113        If  the environment variable <STRONG>TERMINFO</STRONG> is defined, any pro-
114        gram using <STRONG>curses</STRONG> checks for a local  terminal  definition
115        before  checking  in  the standard place.  For example, if
116        <STRONG>TERM</STRONG> is set to <STRONG>att4424</STRONG>, then the compiled terminal defini-
117        tion is found in
118
119              <STRONG>@DATADIR@/terminfo/a/att4424</STRONG>.
120
121        (The <STRONG>a</STRONG> is copied from the first letter of <STRONG>att4424</STRONG> to avoid
122        creation of huge directories.)  However,  if  <STRONG>TERMINFO</STRONG>  is
123        set to <STRONG>$HOME/myterms</STRONG>, <STRONG>curses</STRONG> first checks
124
125              <STRONG>$HOME/myterms/a/att4424</STRONG>,
126
127        and if that fails, it then checks
128
129              <STRONG>@DATADIR@/terminfo/a/att4424</STRONG>.
130
131        This  is useful for developing experimental definitions or
132        when write permission in <STRONG>@DATADIR@/terminfo</STRONG> is not  avail-
133        able.
134
135        The  integer  variables  <STRONG>LINES</STRONG>  and  <STRONG>COLS</STRONG>  are  defined in
136        <STRONG>&lt;curses.h&gt;</STRONG> and will be filled in by <STRONG>initscr</STRONG> with the  size
137        of the screen.  The constants <STRONG>TRUE</STRONG> and <STRONG>FALSE</STRONG> have the val-
138        ues <STRONG>1</STRONG> and <STRONG>0</STRONG>, respectively.
139
140        The <STRONG>curses</STRONG> routines also  define  the  <STRONG>WINDOW</STRONG>  <STRONG>*</STRONG>  variable
141        <STRONG>curscr</STRONG> which is used for certain low-level operations like
142        clearing and redrawing a screen containing  garbage.   The
143        <STRONG>curscr</STRONG> can be used in only a few routines.
144
145
146    <STRONG>Routine</STRONG> <STRONG>and</STRONG> <STRONG>Argument</STRONG> <STRONG>Names</STRONG>
147        Many  <STRONG>curses</STRONG> routines have two or more versions.  The rou-
148        tines prefixed with <STRONG>w</STRONG> require a window argument.  The rou-
149        tines prefixed with <STRONG>p</STRONG> require a pad argument.  Those with-
150        out a prefix generally use <STRONG>stdscr</STRONG>.
151
152        The routines prefixed with <STRONG>mv</STRONG> require a <EM>y</EM> and <EM>x</EM> coordinate
153        to  move to before performing the appropriate action.  The
154        <STRONG>mv</STRONG> routines imply a call to <STRONG>move</STRONG> before the  call  to  the
155        other  routine.  The coordinate <EM>y</EM> always refers to the row
156        (of the window), and <EM>x</EM> always refers to the  column.   The
157        upper left-hand corner is always (0,0), not (1,1).
158
159        The routines prefixed with <STRONG>mvw</STRONG> take both a window argument
160        and <EM>x</EM> and <EM>y</EM> coordinates.  The window  argument  is  always
161        specified before the coordinates.
162
163        In  each  case, <EM>win</EM> is the window affected, and <EM>pad</EM> is the
164
165        Option setting routines require a Boolean flag <EM>bf</EM> with the
166        value <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>; <EM>bf</EM> is always of type <STRONG>bool</STRONG>.  The vari-
167        ables  <EM>ch</EM>  and <EM>attrs</EM> below are always of type <STRONG>chtype</STRONG>.  The
168        types <STRONG>WINDOW</STRONG>, <STRONG>SCREEN</STRONG>, <STRONG>bool</STRONG>,  and  <STRONG>chtype</STRONG>  are  defined  in
169        <STRONG>&lt;curses.h&gt;</STRONG>.   The  type  <STRONG>TERMINAL</STRONG>  is defined in <STRONG>&lt;term.h&gt;</STRONG>.
170        All other arguments are integers.
171
172
173    <STRONG>Routine</STRONG> <STRONG>Name</STRONG> <STRONG>Index</STRONG>
174        The following table lists each <STRONG>curses</STRONG> routine and the name
175        of  the  manual  page  on which it is described.  Routines
176        flagged with `*' are ncurses-specific,  not  described  by
177        XPG4 or present in SVr4.
178
179        center  tab(/); l l l l .  <STRONG>curses</STRONG> Routine Name/Manual Page
180        Name  =  addch/<STRONG><A HREF="curs_addch.3x.html">curs_addch(3X)</A></STRONG>  addchnstr/<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3X)</A></STRONG>
181        addchstr/<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3X)</A></STRONG>         addnstr/<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3X)</A></STRONG>
182        addstr/<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3X)</A></STRONG>               attroff/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>
183        attron/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>       attrset/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>      bau-
184        drate/<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3X)</A></STRONG>                beep/<STRONG><A HREF="curs_beep.3x.html">curs_beep(3X)</A></STRONG>
185        bkgd/<STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3X)</A></STRONG>  bkgdset/<STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3X)</A></STRONG> border/<STRONG>curs_bor-</STRONG>
186        <STRONG><A HREF="der.3x.html">der(3X)</A></STRONG>                                box/<STRONG><A HREF="curs_border.3x.html">curs_border(3X)</A></STRONG>
187        can_change_color/<STRONG><A HREF="curs_color.3x.html">curs_color(3X)</A></STRONG>     cbreak/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG>
188        clear/<STRONG><A HREF="curs_clear.3x.html">curs_clear(3X)</A></STRONG>    clearok/<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3X)</A></STRONG>    clrto-
189        bot/<STRONG><A HREF="curs_clear.3x.html">curs_clear(3X)</A></STRONG>    clrtoeol/<STRONG><A HREF="curs_clear.3x.html">curs_clear(3X)</A></STRONG>   color_con-
190        tent/<STRONG><A HREF="curs_color.3x.html">curs_color(3X)</A></STRONG>               copywin/<STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3X)</A></STRONG>
191        curs_set/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG>     def_prog_mode/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG>
192        def_shell_mode/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG>       del_curterm/<STRONG>curs_ter-</STRONG>
193        <STRONG><A HREF="minfo.3x.html">minfo(3X)</A></STRONG>  delay_output/<STRONG><A HREF="curs_util.3x.html">curs_util(3X)</A></STRONG> delch/<STRONG><A HREF="curs_delch.3x.html">curs_delch(3X)</A></STRONG>
194        deleteln/<STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3X)</A></STRONG> delscreen/<STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3X)</A></STRONG> del-
195        win/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG>      derwin/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG>      doup-
196        date/<STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3X)</A></STRONG>               dupwin/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG>
197        echo/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG>      echochar/<STRONG><A HREF="curs_addch.3x.html">curs_addch(3X)</A></STRONG>     end-
198        win/<STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3X)</A></STRONG>                  erase/<STRONG><A HREF="curs_clear.3x.html">curs_clear(3X)</A></STRONG>
199        erasechar/<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3X)</A></STRONG>          filter/<STRONG><A HREF="curs_util.3x.html">curs_util(3X)</A></STRONG>
200        flash/<STRONG><A HREF="curs_beep.3x.html">curs_beep(3X)</A></STRONG>     flushinp/<STRONG><A HREF="curs_util.3x.html">curs_util(3X)</A></STRONG>      getbe-
201        gyx/<STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3X)</A></STRONG>        getch/<STRONG><A HREF="curs_getch.3x.html">curs_getch(3X)</A></STRONG>        get-
202        maxyx/<STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3X)</A></STRONG>     getmouse/<STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3X)</A></STRONG>*     get-
203        paryx/<STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3X)</A></STRONG>      getstr/<STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3X)</A></STRONG>      get-
204        syx/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG>                   getwin/<STRONG><A HREF="curs_util.3x.html">curs_util(3X)</A></STRONG>
205        getyx/<STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3X)</A></STRONG>   halfdelay/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG>  has_col-
206        ors/<STRONG><A HREF="curs_color.3x.html">curs_color(3X)</A></STRONG>               has_ic/<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3X)</A></STRONG>
207        has_il/<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3X)</A></STRONG>          has_key/<STRONG><A HREF="curs_getch.3x.html">curs_getch(3X)</A></STRONG>*
208        hline/<STRONG><A HREF="curs_border.3x.html">curs_border(3X)</A></STRONG>               idcok/<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3X)</A></STRONG>
209        idlok/<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3X)</A></STRONG>            immedok/<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3X)</A></STRONG>
210        inch/<STRONG><A HREF="curs_inch.3x.html">curs_inch(3X)</A></STRONG>     inchnstr/<STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3X)</A></STRONG>     inch-
211        str/<STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3X)</A></STRONG>             init_color/<STRONG><A HREF="curs_color.3x.html">curs_color(3X)</A></STRONG>
212        init_pair/<STRONG><A HREF="curs_color.3x.html">curs_color(3X)</A></STRONG>          initscr/<STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3X)</A></STRONG>
213        innstr/<STRONG><A HREF="curs_instr.3x.html">curs_instr(3X)</A></STRONG>       insch/<STRONG><A HREF="curs_insch.3x.html">curs_insch(3X)</A></STRONG>      ins-
214        delln/<STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3X)</A></STRONG>         insertln/<STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3X)</A></STRONG>
215        insnstr/<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3X)</A></STRONG>             insstr/<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3X)</A></STRONG>
216        isendwin/<STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3X)</A></STRONG>    keyname/<STRONG><A HREF="curs_util.3x.html">curs_util(3X)</A></STRONG>    key-
217        pad/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG>            killchar/<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3X)</A></STRONG>
218        leaveok/<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3X)</A></STRONG>       longname/<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3X)</A></STRONG>
219        mcprint/<STRONG><A HREF="curs_print.3x.html">curs_print(3X)</A></STRONG>*  meta/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG>  mouseinter-
220        val/<STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3X)</A></STRONG>*              mousemask/<STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3X)</A></STRONG>*
221        move/<STRONG><A HREF="curs_move.3x.html">curs_move(3X)</A></STRONG>     mvaddch/<STRONG><A HREF="curs_addch.3x.html">curs_addch(3X)</A></STRONG>    mvaddchn-
222        str/<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3X)</A></STRONG>         mvaddchstr/<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3X)</A></STRONG>
223        mvaddnstr/<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3X)</A></STRONG>         mvaddstr/<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3X)</A></STRONG>
224        mvcur/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG>   mvdelch/<STRONG><A HREF="curs_delch.3x.html">curs_delch(3X)</A></STRONG>    mvder-
225        win/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG>      mvgetch/<STRONG><A HREF="curs_getch.3x.html">curs_getch(3X)</A></STRONG>     mvget-
226        str/<STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3X)</A></STRONG>     mvinch/<STRONG><A HREF="curs_inch.3x.html">curs_inch(3X)</A></STRONG>      mvinchn-
227        str/<STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3X)</A></STRONG>            mvinchstr/<STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3X)</A></STRONG>
228        mvinnstr/<STRONG><A HREF="curs_instr.3x.html">curs_instr(3X)</A></STRONG>    mvinsch/<STRONG><A HREF="curs_insch.3x.html">curs_insch(3X)</A></STRONG>    mvin-
229        snstr/<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3X)</A></STRONG>    mvinsstr/<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3X)</A></STRONG>    mvin-
230        str/<STRONG><A HREF="curs_instr.3x.html">curs_instr(3X)</A></STRONG>      mvprintw/<STRONG><A HREF="curs_printw.3x.html">curs_printw(3X)</A></STRONG>      mvs-
231        canw/<STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3X)</A></STRONG>   mvwaddch/<STRONG><A HREF="curs_addch.3x.html">curs_addch(3X)</A></STRONG>   mvwaddchn-
232        str/<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3X)</A></STRONG>        mvwaddchstr/<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3X)</A></STRONG>
233        mvwaddnstr/<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3X)</A></STRONG>       mvwaddstr/<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3X)</A></STRONG>
234        mvwdelch/<STRONG><A HREF="curs_delch.3x.html">curs_delch(3X)</A></STRONG>  mvwgetch/<STRONG><A HREF="curs_getch.3x.html">curs_getch(3X)</A></STRONG>   mvwget-
235        str/<STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3X)</A></STRONG>                  mvwin/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG>
236        mvwinch/<STRONG><A HREF="curs_inch.3x.html">curs_inch(3X)</A></STRONG>         mvwinchnstr/<STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3X)</A></STRONG>
237        mvwinchstr/<STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3X)</A></STRONG>       mvwinnstr/<STRONG><A HREF="curs_instr.3x.html">curs_instr(3X)</A></STRONG>
238        mvwinsch/<STRONG><A HREF="curs_insch.3x.html">curs_insch(3X)</A></STRONG>         mvwinsnstr/<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3X)</A></STRONG>
239        mvwinsstr/<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3X)</A></STRONG>   mvwinstr/<STRONG><A HREF="curs_instr.3x.html">curs_instr(3X)</A></STRONG>   mvw-
240        printw/<STRONG><A HREF="curs_printw.3x.html">curs_printw(3X)</A></STRONG>             mvwscanw/<STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3X)</A></STRONG>
241        napms/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG>                  newpad/<STRONG><A HREF="curs_pad.3x.html">curs_pad(3X)</A></STRONG>
242        newterm/<STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3X)</A></STRONG>            newwin/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG>
243        nl/<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3X)</A></STRONG>     nocbreak/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG>     node-
244        lay/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG> noecho/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG>  nonl/<STRONG>curs_out-</STRONG>
245        <STRONG><A HREF="opts.3x.html">opts(3X)</A></STRONG>  noqiflush/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG>  noraw/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG>
246        notimeout/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG>  overlay/<STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3X)</A></STRONG>  over-
247        write/<STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3X)</A></STRONG>         pair_content/<STRONG><A HREF="curs_color.3x.html">curs_color(3X)</A></STRONG>
248        pechochar/<STRONG><A HREF="curs_pad.3x.html">curs_pad(3X)</A></STRONG>   pnoutrefresh/<STRONG><A HREF="curs_pad.3x.html">curs_pad(3X)</A></STRONG>    pre-
249        fresh/<STRONG><A HREF="curs_pad.3x.html">curs_pad(3X)</A></STRONG>  printw/<STRONG><A HREF="curs_printw.3x.html">curs_printw(3X)</A></STRONG>  putp/<STRONG>curs_ter-</STRONG>
250        <STRONG><A HREF="minfo.3x.html">minfo(3X)</A></STRONG>   putwin/<STRONG><A HREF="curs_util.3x.html">curs_util(3X)</A></STRONG>   qiflush/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG>
251        raw/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG>             redrawwin/<STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3X)</A></STRONG>
252        refresh/<STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3X)</A></STRONG>   reset_prog_mode/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG>
253        reset_shell_mode/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG>   resetty/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG>
254        resizeterm/<STRONG><A HREF="resizeterm.3x.html">resizeterm(3X)</A></STRONG>*   restartterm/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG>
255        ripoffline/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG>         savetty/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG>
256        scanw/<STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3X)</A></STRONG>            scr_dump/<STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3X)</A></STRONG>
257        scr_init/<STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3X)</A></STRONG>   scr_restore/<STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3X)</A></STRONG>
258        scr_set/<STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3X)</A></STRONG>             scrl/<STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3X)</A></STRONG>
259        scroll/<STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3X)</A></STRONG>           scrollok/<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3X)</A></STRONG>
260        set_curterm/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG>    set_term/<STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3X)</A></STRONG>
261        setscrreg/<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3X)</A></STRONG>   setsyx/<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3X)</A></STRONG>   set-
262        term/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG>         setupterm/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG>
263        slk_attr/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG>*            slk_attroff/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG>
264        slk_attron/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG>           slk_attrset/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG>
265        slk_clear/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG>               slk_init/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG>
266        slk_label/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG>        slk_noutrefresh/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG>
267        slk_refresh/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG>          slk_restore/<STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG>
268        start_color/<STRONG><A HREF="curs_color.3x.html">curs_color(3X)</A></STRONG>    subpad/<STRONG><A HREF="curs_pad.3x.html">curs_pad(3X)</A></STRONG>     sub-
269        win/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG>     syncok/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG>     termat-
270        trs/<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3X)</A></STRONG>  termname/<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3X)</A></STRONG>   tge-
271        tent/<STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3X)</A></STRONG>    tgetflag/<STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3X)</A></STRONG>   tget-
272        num/<STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3X)</A></STRONG>              tgetstr/<STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3X)</A></STRONG>
273        tgoto/<STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3X)</A></STRONG>  tigetflag/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG> tiget-
274        num/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG>   tigetstr/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG>   time-
275        out/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG>     touchline/<STRONG><A HREF="curs_touch.3x.html">curs_touch(3X)</A></STRONG>    touch-
276        win/<STRONG><A HREF="curs_touch.3x.html">curs_touch(3X)</A></STRONG>                 tparm/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG>
277        tputs/<STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3X)</A></STRONG>    tputs/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG>   typea-
278        head/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG>                  unctrl/<STRONG><A HREF="curs_util.3x.html">curs_util(3X)</A></STRONG>
279        ungetch/<STRONG><A HREF="curs_getch.3x.html">curs_getch(3X)</A></STRONG> ungetmouse/<STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3X)</A></STRONG>* untouch-
280        win/<STRONG><A HREF="curs_touch.3x.html">curs_touch(3X)</A></STRONG> use_env/<STRONG><A HREF="curs_util.3x.html">curs_util(3X)</A></STRONG> vidattr/<STRONG>curs_ter-</STRONG>
281        <STRONG><A HREF="minfo.3x.html">minfo(3X)</A></STRONG>  vidputs/<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3X)</A></STRONG> vline/<STRONG><A HREF="curs_border.3x.html">curs_border(3X)</A></STRONG>
282        vwprintw/<STRONG><A HREF="curs_printw.3x.html">curs_printw(3X)</A></STRONG>    vwscanw/<STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3X)</A></STRONG>    wad-
283        dch/<STRONG><A HREF="curs_addch.3x.html">curs_addch(3X)</A></STRONG>   waddchnstr/<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3X)</A></STRONG>  waddch-
284        str/<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3X)</A></STRONG>             waddnstr/<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3X)</A></STRONG>
285        waddstr/<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3X)</A></STRONG>     wattroff/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>    wat-
286        tron/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>                  wattrset/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>
287        wbkgd/<STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3X)</A></STRONG>      wbkgdset/<STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3X)</A></STRONG>      wbor-
288        der/<STRONG><A HREF="curs_border.3x.html">curs_border(3X)</A></STRONG>     wclear/<STRONG><A HREF="curs_clear.3x.html">curs_clear(3X)</A></STRONG>      wclrto-
289        bot/<STRONG><A HREF="curs_clear.3x.html">curs_clear(3X)</A></STRONG>    wclrtoeol/<STRONG><A HREF="curs_clear.3x.html">curs_clear(3X)</A></STRONG>    wcursyn-
290        cup/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG>                  wdelch/<STRONG><A HREF="curs_delch.3x.html">curs_delch(3X)</A></STRONG>
291        wdeleteln/<STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3X)</A></STRONG>  wechochar/<STRONG><A HREF="curs_addch.3x.html">curs_addch(3X)</A></STRONG> wen-
292        close/<STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3X)</A></STRONG>*                werase/<STRONG><A HREF="curs_clear.3x.html">curs_clear(3X)</A></STRONG>
293        wgetch/<STRONG><A HREF="curs_getch.3x.html">curs_getch(3X)</A></STRONG>    wgetnstr/<STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3X)</A></STRONG>    wget-
294        str/<STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3X)</A></STRONG>                 whline/<STRONG><A HREF="curs_border.3x.html">curs_border(3X)</A></STRONG>
295        winch/<STRONG><A HREF="curs_inch.3x.html">curs_inch(3X)</A></STRONG>    winchnstr/<STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3X)</A></STRONG>   winch-
296        str/<STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3X)</A></STRONG>      winnstr/<STRONG><A HREF="curs_instr.3x.html">curs_instr(3X)</A></STRONG>      win-
297        sch/<STRONG><A HREF="curs_insch.3x.html">curs_insch(3X)</A></STRONG>     winsdelln/<STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3X)</A></STRONG>    win-
298        sertln/<STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3X)</A></STRONG>          winsnstr/<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3X)</A></STRONG>
299        winsstr/<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3X)</A></STRONG>              winstr/<STRONG><A HREF="curs_instr.3x.html">curs_instr(3X)</A></STRONG>
300        wmove/<STRONG><A HREF="curs_move.3x.html">curs_move(3X)</A></STRONG>          wnoutrefresh/<STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3X)</A></STRONG>
301        wprintw/<STRONG><A HREF="curs_printw.3x.html">curs_printw(3X)</A></STRONG>   wredrawln/<STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3X)</A></STRONG>  wre-
302        fresh/<STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3X)</A></STRONG>                wresize/<STRONG><A HREF="wresize.3x.html">wresize(3X)</A></STRONG>*
303        wscanw/<STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3X)</A></STRONG>    wscrl/<STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3X)</A></STRONG>    wsetscr-
304        reg/<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3X)</A></STRONG>    wstandend/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>    wstand-
305        out/<STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>      wsyncdown/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG>     wsyn-
306        cup/<STRONG><A HREF="curs_window.3x.html">curs_window(3X)</A></STRONG>               wtimeout/<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3X)</A></STRONG>
307        wtouchln/<STRONG><A HREF="curs_touch.3x.html">curs_touch(3X)</A></STRONG> wvline/<STRONG><A HREF="curs_border.3x.html">curs_border(3X)</A></STRONG>
308
309
310 </PRE>
311 <H2>RETURN VALUE</H2><PRE>
312        Routines  that  return  an integer return <STRONG>ERR</STRONG> upon failure
313        and an integer value other than <STRONG>ERR</STRONG> upon  successful  com-
314        pletion,  unless  otherwise  noted in the routine descrip-
315        tions.
316
317        All macros return the  value  of  the  <STRONG>w</STRONG>  version,  except
318        <STRONG>setscrreg</STRONG>,  <STRONG>wsetscrreg</STRONG>,  <STRONG>getyx</STRONG>,  <STRONG>getbegyx</STRONG>,  <STRONG>getmaxyx</STRONG>.  The
319        return values of <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>,  <STRONG>getyx</STRONG>,  <STRONG>getbegyx</STRONG>,
320        and <STRONG>getmaxyx</STRONG> are undefined (<EM>i</EM>.<EM>e</EM>., these should not be used
321        as the right-hand side of assignment statements).
322
323
324 </PRE>
325 <H2>SEE ALSO</H2><PRE>
326        <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> and 3X pages whose  names  begin  "curs_"  for
327        detailed routine descriptions.
328
329
330 </PRE>
331 <H2>EXTENSIONS</H2><PRE>
332        The <STRONG>curses</STRONG> library can be compiled with an option (<STRONG>-DTERM-</STRONG>
333        <STRONG>CAP_FILE</STRONG>) that falls back to  the  old-style  /etc/termcap
334        file  if  the  terminal  setup code cannot find a terminfo
335        entry corresponding to <STRONG>TERM</STRONG>.  Use of this feature  is  not
336        recommended,  as it essentially includes an entire termcap
337        compiler in the <STRONG>curses</STRONG> startup code, at  significant  cost
338        in core and startup cycles.
339
340        Compiling  with  <STRONG>-DTERMCAP_FILE</STRONG> changes the library's ini-
341        tialization sequence in a way intended to mimic the behav-
342        ior of 4.4BSD curses.  If there is no local or system ter-
343        minfo entry matching <STRONG>TERM</STRONG>,  then  the  library  looks  for
344        termcap  entries  in the following places: (1) if <STRONG>TERMINFO</STRONG>
345        is undefined, in the file named by  <STRONG>TERMCAP_FILE</STRONG>;  (2)  if
346        <STRONG>TERMINFO</STRONG>  is defined and begins with a slash, it is inter-
347        preted as the name of a termcap file to search  for  <STRONG>TERM</STRONG>;
348        (3) otherwise, if <STRONG>TERMINFO</STRONG> has a leading string that looks
349        like a terminal entry name list, and it matches <STRONG>TERM</STRONG>,  the
350        contents  of  <STRONG>TERMINFO</STRONG> is interpreted as a termcap; (4) if
351        <STRONG>TERMINFO</STRONG> looks like a termcap but doesn't match <STRONG>TERM</STRONG>,  the
352        termcap  file  is  searched  for among the colon-separated
353        paths in the environment variable  <STRONG>TERMPATHS</STRONG>  if  that  is
354        defined,  and  in  ~/.termcap  and the file value of <STRONG>TERM-</STRONG>
355        <STRONG>CAP_FILE</STRONG> otherwise.
356
357        Versions of <STRONG>curses</STRONG> compiled on PC clones  support  display
358        of  the  PC ROM characters (including ROM characters 0-31,
359        which stock SVr4 curses cannot display).  See  the  EXTEN-
360        SIONS sections of <STRONG><A HREF="curs_addch.3x.html">curs_addch(3X)</A></STRONG> and <STRONG><A HREF="curs_attr.3x.html">curs_attr(3X)</A></STRONG>.
361
362        The <STRONG>curses</STRONG> library includes facilities for capturing mouse
363        events on certain terminals  (including  xterm).  See  the
364        <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3X)</A></STRONG> manual page for details.
365
366        The  <STRONG>curses</STRONG>  library  includes  a  function  for directing
367        application output to a printer attached to  the  terminal
368        device.  See the <STRONG><A HREF="curs_print.3x.html">curs_print(3X)</A></STRONG> manual page for details.
369
370
371 </PRE>
372 <H2>PORTABILITY</H2><PRE>
373        The <STRONG>curses</STRONG> library is intended to be BASE-level conformant
374        with the XSI Curses standard.   Certain  portions  of  the
375        EXTENDED  XSI  Curses  functionality (including color sup-
376        port) are supported.  The following  EXTENDED  XSI  Curses
377        calls  in  support  of wide (multibyte) characters are not
378        yet implemented: <STRONG>addnwstr,</STRONG> <STRONG>addwstr,</STRONG> <STRONG>mvaddnwstr,</STRONG>  <STRONG>mvwaddnw-</STRONG>
379        <STRONG>str,</STRONG>  <STRONG>mvaddwstr,</STRONG>  <STRONG>waddnwstr,</STRONG>  <STRONG>waddwstr,</STRONG> <STRONG>add_wch,</STRONG> <STRONG>wadd_wch,</STRONG>
380        <STRONG>mvwadd_wchnstr,</STRONG>  <STRONG>mvwadd_wchstr,</STRONG>  <STRONG>bkgrndset,</STRONG>  <STRONG>bkgrnd,</STRONG>  <STRONG>get-</STRONG>
381        <STRONG>bkgrnd,</STRONG> <STRONG>wbkgrnd,</STRONG> <STRONG>wbkgrndset,</STRONG> <STRONG>wgetbkgrnd,</STRONG> <STRONG>border_set,</STRONG> <STRONG>wbor-</STRONG>
382        <STRONG>der_set,</STRONG>  <STRONG>box_set,</STRONG>  <STRONG>hline_set,</STRONG>  <STRONG>mvhline_set,</STRONG>  <STRONG>mvvline_set,</STRONG>
383        <STRONG>mvwhline_set,</STRONG>    <STRONG>mvwvline_set,</STRONG>   <STRONG>whline_set,</STRONG>   <STRONG>vhline_set,</STRONG>
384        <STRONG>wvline_set,</STRONG>  <STRONG>echo_wchar,</STRONG>  <STRONG>wecho_wchar,</STRONG>  <STRONG>erasewchar,</STRONG>  <STRONG>kill-</STRONG>
385        <STRONG>wchar,</STRONG>    <STRONG>get_wch,</STRONG>    <STRONG>mvget_wch,</STRONG>    <STRONG>mvwget_ch,</STRONG>   <STRONG>wget_wch,</STRONG>
386        <STRONG>getwchtype,</STRONG> <STRONG>get_wstr,</STRONG>  <STRONG>getn_wstr,</STRONG>  <STRONG>wget_wstr,</STRONG>  <STRONG>wgetn_wstr,</STRONG>
387        <STRONG>mvget_wstr,</STRONG>  <STRONG>mvgetn_wstr,</STRONG> <STRONG>mvwget_wstr,</STRONG> <STRONG>mvwgetn_wstr,</STRONG> <STRONG>innw-</STRONG>
388        <STRONG>str,</STRONG>  <STRONG>inwstr,</STRONG>  <STRONG>winnwstr,</STRONG>  <STRONG>winwstr,</STRONG>  <STRONG>mvinnwstr,</STRONG>   <STRONG>mvinwstr,</STRONG>
389        <STRONG>mvwinnwstr,</STRONG>  <STRONG>mvwinwstr,</STRONG>  <STRONG>ins_nwstr,</STRONG> <STRONG>ins_wstr,</STRONG> <STRONG>mvins_nwstr,</STRONG>
390        <STRONG>mvins_wstr,</STRONG>   <STRONG>mvwins_nwstr,</STRONG>    <STRONG>mvwins_wstr,</STRONG>    <STRONG>wins_nwstr,</STRONG>
391        <STRONG>wins_wstr,</STRONG>   <STRONG>ins_wch,</STRONG>   <STRONG>wins_wch,</STRONG>  <STRONG>mvins_wch,</STRONG>  <STRONG>mvwins_wch,</STRONG>
392        <STRONG>in_wch,</STRONG> <STRONG>win_wch,</STRONG> <STRONG>mvin_wch,</STRONG> <STRONG>mvwin_wch,</STRONG> <STRONG>inwchstr,</STRONG> <STRONG>inwchnstr,</STRONG>
393        <STRONG>winwchstr,</STRONG>  <STRONG>winwchnstr,</STRONG>  <STRONG>mvinwchstr,</STRONG> <STRONG>mvinwchnstr,</STRONG> <STRONG>mvinwch-</STRONG>
394        <STRONG>str,</STRONG> <STRONG>mvwinwchnstr.</STRONG>
395
396        A small number of local differences (that  is,  individual
397        differences  between  the XSI Curses and <STRONG>curses</STRONG> calls) are
398        described in  <STRONG>PORTABILITY</STRONG>  sections  of  the  library  man
399        pages.
400
401        The routine <STRONG>has_key</STRONG> is not part of XPG4, nor is it present
402        in SVr4.  See the <STRONG><A HREF="curs_getch.3x.html">curs_getch(3X)</A></STRONG> manual page for  details.
403
404        The  routine  <STRONG>slk_attr</STRONG> is not part of XPG4, nor is it pre-
405        sent in  SVr4.   See  the  <STRONG><A HREF="curs_slk.3x.html">curs_slk(3X)</A></STRONG>  manual  page  for
406        details.
407
408        The  routines <STRONG>getmouse</STRONG>, <STRONG>mousemask</STRONG>, <STRONG>ungetmouse</STRONG>, <STRONG>mouseinter-</STRONG>
409        <STRONG>val</STRONG>, and <STRONG>wenclose</STRONG> relating to mouse  interfacing  are  not
410        part  of  XPG4,  nor  are  they  present in SVr4.  See the
411        <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3X)</A></STRONG> manual page for details.
412
413        The routine <STRONG>mcprint</STRONG> was not present in any previous curses
414        implementation.   See  the  <STRONG><A HREF="curs_print.3x.html">curs_print(3X)</A></STRONG> manual page for
415        details.
416
417        The routine <STRONG>wresize</STRONG> is not part of XPG4, nor is it present
418        in SVr4.  See the <STRONG><A HREF="wresize.3x.html">wresize(3X)</A></STRONG> manual page for details.
419
420        In  historic curses versions, delays embedded in the capa-
421        bilities <STRONG>cr</STRONG>, <STRONG>ind</STRONG>, <STRONG>cub1</STRONG>, <STRONG>ff</STRONG> and <STRONG>tab</STRONG> activated corresponding
422        delay  bits  in  the UNIX tty driver.  In this implementa-
423        tion, all padding is done by NUL sends.   This  method  is
424        slightly  more expensive, but narrows the interface to the
425        UNIX kernel  significantly  and  increases  the  package's
426        portability correspondingly.
427
428        In  the  XSI  standard  and  SVr4 manual pages, many entry
429        points have prototype arguments of the for <STRONG>char</STRONG> <STRONG>*const</STRONG> (or
430        <STRONG>cchar_t</STRONG>  <STRONG>*const</STRONG>,  or  <STRONG>wchar_t</STRONG>  <STRONG>*const</STRONG>,  or  <STRONG>void</STRONG>  <STRONG>*const</STRONG>).
431        Depending on one's interpretation of the ANSI  C  standard
432        tion <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*x</STRONG> is a modifiable pointer to unmodifiable
433        data, but <STRONG>char</STRONG> <STRONG>*const</STRONG> <STRONG>x</STRONG>' is  an  unmodifiable  pointer  to
434        modifiable  data.  Given that C passes arguments by value,
435        <STRONG>&lt;type&gt;</STRONG> <STRONG>*const</STRONG> as a formal type is at best  dubious.   Some
436        compilers  choke  on  the  prototypes.  Therefore, in this
437        implementation, they have been changed to <STRONG>const</STRONG>  <STRONG>&lt;type&gt;</STRONG>  <STRONG>*</STRONG>
438        globally.
439
440
441 </PRE>
442 <H2>NOTES</H2><PRE>
443        The  header  file  <STRONG>&lt;curses.h&gt;</STRONG>  automatically  includes the
444        header files <STRONG>&lt;stdio.h&gt;</STRONG> and <STRONG>&lt;unctrl.h&gt;</STRONG>.
445
446        If standard output from a <STRONG>curses</STRONG> program is re-directed to
447        something  which  is  not  a  tty,  screen updates will be
448        directed to standard error.  This was an undocumented fea-
449        ture of AT&amp;T System V Release 3 curses.
450
451
452 </PRE>
453 <H2>AUTHORS</H2><PRE>
454        Zeyd  M.  Ben-Halim,  Eric  S. Raymond.  Descends from the
455        original pcurses by Pavel Curtis.
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488 </PRE>
489 </BODY>
490 </HTML>