~ubuntu-branches/debian/sid/ncurses/sid-200908151543

« back to all changes in this revision

Viewing changes to doc/html/man/ncurses.3x.html

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Baumann
  • Date: 2008-12-14 21:06:00 UTC
  • mfrom: (1.1.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20081214210600-2rdjwvpplgvh3zeb
Tags: 5.7+20081213-1
MergingĀ upstreamĀ versionĀ 5.7+20081213.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
<!-- 
3
3
  * t
4
4
  ****************************************************************************
5
 
  * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
 
5
  * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
6
6
  *                                                                          *
7
7
  * Permission is hereby granted, free of charge, to any person obtaining a  *
8
8
  * copy of this software and associated documentation files (the            *
28
28
  * sale, use or other dealings in this Software without prior written       *
29
29
  * authorization.                                                           *
30
30
  ****************************************************************************
31
 
  * @Id: ncurses.3x,v 1.76 2005/09/03 17:42:29 tom Exp @
 
31
  * @Id: ncurses.3x,v 1.91 2008/10/11 20:43:11 tom Exp @
32
32
-->
33
33
<HTML>
34
34
<HEAD>
62
62
       independent method of updating character screens with rea-
63
63
       sonable   optimization.    This  implementation  is  ``new
64
64
       curses'' (ncurses) and is  the  approved  replacement  for
65
 
       4.4BSD classic curses, which has been discontinued.
66
 
 
67
 
       The  <STRONG>ncurses</STRONG>  routines  emulate  the <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> library of
68
 
       System V Release 4 UNIX, and the XPG4 curses standard (XSI
69
 
       curses)  but the <STRONG>ncurses</STRONG> library is freely redistributable
70
 
       in source form.  Differences from the SVr4 curses are sum-
71
 
       marized  under  the  EXTENSIONS  and  PORTABILITY sections
72
 
       below and described in detail  in  the  respective  EXTEN-
73
 
       SIONS,  PORTABILITY  and  BUGS  sections of individual man
74
 
       pages.
75
 
 
76
 
       A program using these routines must  be  linked  with  the
77
 
       <STRONG>-lncurses</STRONG>  option,  or (if it has been generated) with the
78
 
       debugging library <STRONG>-lncurses_g</STRONG>.   (Your  system  integrator
79
 
       may  also  have  installed these libraries under the names
 
65
       4.4BSD  classic curses, which has been discontinued.  This
 
66
       describes <STRONG>ncurses</STRONG> version 5.6 (patch 20081011).
 
67
 
 
68
       The <STRONG>ncurses</STRONG> library emulates  the  <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>  library  of
 
69
       System  V  Release  4  UNIX,  and XPG4 (X/Open Portability
 
70
       Guide) curses (also known as XSI curses).  XSI stands  for
 
71
       X/Open  System  Interfaces Extension.  The <STRONG>ncurses</STRONG> library
 
72
       is freely redistributable  in  source  form.   Differences
 
73
       from  the  SVr4 curses are summarized under the <STRONG>EXTENSIONS</STRONG>
 
74
       and <STRONG>PORTABILITY</STRONG> sections below and described in detail  in
 
75
       the  respective  <STRONG>EXTENSIONS</STRONG>, <STRONG>PORTABILITY</STRONG> and <STRONG>BUGS</STRONG> sections
 
76
       of individual man pages.
 
77
 
 
78
       The <STRONG>ncurses</STRONG> library also provides many useful  extensions,
 
79
       i.e.,  features  which  cannot  be implemented by a simple
 
80
       add-on library but which require access to  the  internals
 
81
       of the library.
 
82
 
 
83
       A  program  using  these  routines must be linked with the
 
84
       <STRONG>-lncurses</STRONG> option, or (if it has been generated)  with  the
 
85
       debugging  library  <STRONG>-lncurses_g</STRONG>.   (Your system integrator
 
86
       may also have installed these libraries  under  the  names
80
87
       <STRONG>-lcurses</STRONG> and <STRONG>-lcurses_g</STRONG>.)  The ncurses_g library generates
81
88
       trace logs (in a file called 'trace' in the current direc-
82
 
       tory) that describe curses actions.
 
89
       tory)  that describe curses actions.  See also the section
 
90
       on <STRONG>ALTERNATE</STRONG> <STRONG>CONFIGURATIONS</STRONG>.
83
91
 
84
92
       The <STRONG>ncurses</STRONG> package supports: overall screen,  window  and
85
93
       pad manipulation; output to windows and pads; reading ter-
88
96
       lation; use of soft label keys; terminfo capabilities; and
89
97
       access to low-level terminal-manipulation routines.
90
98
 
91
 
       To initialize the routines, the routine <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>
92
 
       must be called before any of the other routines that  deal
93
 
       with  windows  and  screens  are used.  The routine <STRONG>endwin</STRONG>
94
 
       must be called before exiting.  To get character-at-a-time
95
 
       input  without  echoing (most interactive, screen oriented
96
 
       programs want this),  the  following  sequence  should  be
97
 
       used:
 
99
       The  library uses the locale which the calling program has
 
100
       initialized.  That is normally done with <STRONG>setlocale</STRONG>:
 
101
 
 
102
             <STRONG>setlocale(LC_ALL,</STRONG> <STRONG>"");</STRONG>
 
103
 
 
104
       If the locale is not initialized, the library assumes that
 
105
       characters  are  printable  as in ISO-8859-1, to work with
 
106
       certain legacy programs.  You should initialize the locale
 
107
       and  not  rely on specific details of the library when the
 
108
       locale has not been setup.
 
109
 
 
110
       The function <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG> must be called to initial-
 
111
       ize the library before any of the other routines that deal
 
112
       with windows and screens are  used.   The  routine  <STRONG>endwin</STRONG>
 
113
       must be called before exiting.
 
114
 
 
115
       To  get  character-at-a-time  input  without echoing (most
 
116
       interactive, screen oriented programs want this), the fol-
 
117
       lowing sequence should be used:
98
118
 
99
119
             <STRONG>initscr();</STRONG> <STRONG>cbreak();</STRONG> <STRONG>noecho();</STRONG>
100
120
 
119
139
       be created with <STRONG>newwin</STRONG>.
120
140
 
121
141
       Note  that  <STRONG>curses</STRONG>  does  not  handle overlapping windows,
122
 
       that's done by the <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG> library. This means that  you
 
142
       that's done by the <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG> library.  This means that you
123
143
       can either use <STRONG>stdscr</STRONG> or divide the screen into tiled win-
124
 
       dows and not using <STRONG>stdscr</STRONG> at  all.  Mixing  the  two  will
 
144
       dows and not using <STRONG>stdscr</STRONG> at all.   Mixing  the  two  will
125
145
       result in unpredictable, and undesired, effects.
126
146
 
127
147
       Windows are referred to by variables declared as <STRONG>WINDOW</STRONG> <STRONG>*</STRONG>.
128
148
       These  data  structures  are  manipulated  with   routines
129
149
       described  here and elsewhere in the <STRONG>ncurses</STRONG> manual pages.
130
 
       Among which the most basic routines are  <STRONG>move</STRONG>  and  <STRONG>addch</STRONG>.
 
150
       Among those, the most basic routines are <STRONG>move</STRONG>  and  <STRONG>addch</STRONG>.
131
151
       More  general versions of these routines are included with
132
152
       names beginning with <STRONG>w</STRONG>, allowing the  user  to  specify  a
133
 
       window.  The routines not beginning with <STRONG>w</STRONG> affect <STRONG>stdscr</STRONG>.)
 
153
       window.   The routines not beginning with <STRONG>w</STRONG> affect <STRONG>stdscr</STRONG>.
134
154
 
135
155
       After using routines to manipulate a  window,  <STRONG>refresh</STRONG>  is
136
156
       called,  telling <STRONG>curses</STRONG> to make the user's CRT screen look
158
178
       If the environment variables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> are set, or
159
179
       if the program is executing in a window environment,  line
160
180
       and  column  information  in the environment will override
161
 
       information read by <EM>terminfo</EM>.  This would effect a program
 
181
       information read by <EM>terminfo</EM>.  This would affect a program
162
182
       running  in an AT&amp;T 630 layer, for example, where the size
163
183
       of a screen is changeable (see <STRONG>ENVIRONMENT</STRONG>).
164
184
 
216
236
       <STRONG>DOW</STRONG>.
217
237
 
218
238
       Option setting routines require a Boolean flag <EM>bf</EM> with the
219
 
       value <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>; <EM>bf</EM> is always of type <STRONG>bool</STRONG>.  The vari-
220
 
       ables <EM>ch</EM> and <EM>attrs</EM> below are always of type  <STRONG>chtype</STRONG>.   The
221
 
       types  <STRONG>WINDOW</STRONG>,  <STRONG>SCREEN</STRONG>,  <STRONG>bool</STRONG>,  and  <STRONG>chtype</STRONG> are defined in
222
 
       <STRONG>&lt;curses.h&gt;</STRONG>.  The type <STRONG>TERMINAL</STRONG>  is  defined  in  <STRONG>&lt;term.h&gt;</STRONG>.
223
 
       All other arguments are integers.
 
239
       value  <STRONG>TRUE</STRONG>  or <STRONG>FALSE</STRONG>; <EM>bf</EM> is always of type <STRONG>bool</STRONG>.  Most of
 
240
       the data types used in the library routines, such as  <STRONG>WIN-</STRONG>
 
241
       <STRONG>DOW</STRONG>,  <STRONG>SCREEN</STRONG>,  <STRONG>bool</STRONG>, and <STRONG>chtype</STRONG> are defined in <STRONG>&lt;curses.h&gt;</STRONG>.
 
242
       Types used for the terminfo routines such as <STRONG>TERMINAL</STRONG>  are
 
243
       defined in <STRONG>&lt;term.h&gt;</STRONG>.
 
244
 
 
245
       This  manual  page describes functions which may appear in
 
246
       any configuration of the library.  There  are  two  common
 
247
       configurations of the library:
 
248
 
 
249
              ncurses
 
250
                   the  "normal"  library,  which  handles  8-bit
 
251
                   characters.  The normal (8-bit) library stores
 
252
                   characters  combined with attributes in <STRONG>chtype</STRONG>
 
253
                   data.
 
254
 
 
255
                   Attributes alone (no corresponding  character)
 
256
                   may  be  stored  in  <STRONG>chtype</STRONG>  or the equivalent
 
257
                   <STRONG>attr_t</STRONG> data.  In  either  case,  the  data  is
 
258
                   stored in something like an integer.
 
259
 
 
260
                   Each  cell  (row  and  column)  in a <STRONG>WINDOW</STRONG> is
 
261
                   stored as a <STRONG>chtype</STRONG>.
 
262
 
 
263
              ncursesw
 
264
                   the so-called "wide"  library,  which  handles
 
265
                   multibyte   characters  (See  the  section  on
 
266
                   <STRONG>ALTERNATE</STRONG> <STRONG>CONFIGURATIONS</STRONG>).  The "wide" library
 
267
                   includes  all  of  the calls from the "normal"
 
268
                   library.  It adds about one third  more  calls
 
269
                   using data types which store multibyte charac-
 
270
                   ters:
 
271
 
 
272
                   <STRONG>cchar_t</STRONG>
 
273
                        corresponds to <STRONG>chtype</STRONG>.  However it  is  a
 
274
                        structure,  because  more  data is stored
 
275
                        than can fit into an integer.  The  char-
 
276
                        acters are large enough to require a full
 
277
                        integer value - and  there  may  be  more
 
278
                        than  one  character per cell.  The video
 
279
                        attributes and color are stored in  sepa-
 
280
                        rate fields of the structure.
 
281
 
 
282
                        Each cell (row and column) in a <STRONG>WINDOW</STRONG> is
 
283
                        stored as a <STRONG>cchar_t</STRONG>.
 
284
 
 
285
                   <STRONG>wchar_t</STRONG>
 
286
                        stores a "wide" character.  Like  <STRONG>chtype</STRONG>,
 
287
                        this may be an integer.
 
288
 
 
289
                   <STRONG>wint_t</STRONG>
 
290
                        stores  a <STRONG>wchar_t</STRONG> or <STRONG>WEOF</STRONG> - not the same,
 
291
                        though both may have the same size.
 
292
 
 
293
                   The  "wide"  library  provides  new  functions
 
294
                   which  are analogous to functions in the "nor-
 
295
                   mal" library.  There is  a  naming  convention
 
296
                   which  relates  many  of the normal/wide vari-
 
297
                   ants: a "_w" is inserted into the  name.   For
 
298
                   example, <STRONG>waddch</STRONG> becomes <STRONG>wadd_wch</STRONG>.
 
299
 
224
300
 
225
301
   <STRONG>Routine</STRONG> <STRONG>Name</STRONG> <STRONG>Index</STRONG>
226
302
       The following table lists each <STRONG>curses</STRONG> routine and the name
234
310
              COLOR_PAIR              <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
235
311
              PAIR_NUMBER             <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
236
312
              _nc_tracebits           <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
 
313
 
237
314
              _traceattr              <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
238
315
              _traceattr2             <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
239
316
              _tracechar              <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
244
321
              _tracemouse             <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
245
322
              add_wch                 <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
246
323
              add_wchnstr             <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
247
 
 
248
324
              add_wchstr              <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
249
325
              addch                   <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
250
326
              addchnstr               <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
300
376
              echochar                <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
301
377
              endwin                  <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
302
378
              erase                   <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
 
379
 
303
380
              erasechar               <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
304
381
              erasewchar              <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
305
382
              filter                  <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
307
384
              flushinp                <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
308
385
              get_wch                 <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
309
386
              get_wstr                <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
 
387
              getattrs                <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
 
388
              getbegx                 <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
 
389
              getbegy                 <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
310
390
              getbegyx                <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
311
391
              getbkgd                 <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
312
392
              getbkgrnd               <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
313
 
 
314
393
              getcchar                <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
315
394
              getch                   <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
 
395
              getcurx                 <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
 
396
              getcury                 <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
 
397
              getmaxx                 <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
 
398
              getmaxy                 <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
316
399
              getmaxyx                <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
317
400
              getmouse                <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
318
401
              getn_wstr               <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
319
402
              getnstr                 <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
 
403
              getparx                 <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
 
404
              getpary                 <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
320
405
              getparyx                <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
321
406
              getstr                  <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
322
407
              getsyx                  <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
354
439
              instr                   <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
355
440
              intrflush               <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
356
441
              inwstr                  <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
 
442
              is_cleared              <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
 
443
              is_idcok                <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
 
444
              is_idlok                <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
 
445
 
 
446
              is_immedok              <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
 
447
              is_keypad               <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
 
448
              is_leaveok              <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
357
449
              is_linetouched          <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
 
450
              is_nodelay              <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
 
451
              is_notimeout            <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
 
452
              is_scrollok             <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
 
453
              is_syncok               <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
 
454
              is_term_resized         <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>*
358
455
              is_wintouched           <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
359
456
              isendwin                <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
360
457
              key_defined             <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>*
376
473
              mvadd_wch               <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
377
474
              mvadd_wchnstr           <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
378
475
              mvadd_wchstr            <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
379
 
 
380
476
              mvaddch                 <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
381
477
              mvaddchnstr             <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
382
478
              mvaddchstr              <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
412
508
              mvinsstr                <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
413
509
              mvinstr                 <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
414
510
              mvinwstr                <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
 
511
 
415
512
              mvprintw                <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
416
513
              mvscanw                 <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
417
514
              mvvline                 <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
442
539
              mvwin_wchstr            <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
443
540
              mvwinch                 <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
444
541
              mvwinchnstr             <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
445
 
 
446
542
              mvwinchstr              <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
447
543
              mvwinnstr               <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
448
544
              mvwinnwstr              <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
466
562
              nocbreak                <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
467
563
              nodelay                 <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
468
564
              noecho                  <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
 
565
              nofilter                <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>*
469
566
              nonl                    <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
470
567
              noqiflush               <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
471
568
              noraw                   <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
477
574
              pnoutrefresh            <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
478
575
              prefresh                <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
479
576
              printw                  <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
 
577
 
480
578
              putp                    <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
481
579
              putwin                  <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
482
580
              qiflush                 <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
508
606
              slk_attr                <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>*
509
607
              slk_attr_off            <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
510
608
              slk_attr_on             <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
511
 
 
512
609
              slk_attr_set            <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
513
610
              slk_attroff             <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
514
611
              slk_attron              <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
543
640
              touchline               <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
544
641
              touchwin                <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
545
642
              tparm                   <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
 
643
 
546
644
              tputs                   <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
547
645
              tputs                   <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
548
646
              trace                   <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
555
653
              use_default_colors      <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>*
556
654
              use_env                 <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
557
655
              use_extended_names      <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>*
 
656
              use_legacy_coding       <STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG>*
558
657
              vid_attr                <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
559
658
              vid_puts                <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
560
659
              vidattr                 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
574
673
              waddnstr                <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
575
674
              waddnwstr               <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
576
675
              waddstr                 <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
577
 
 
578
676
              waddwstr                <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
579
677
              wattr_get               <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
580
678
              wattr_off               <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
608
706
              wgetn_wstr              <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
609
707
              wgetnstr                <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
610
708
              wgetstr                 <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
 
709
 
611
710
              whline                  <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
612
711
              whline_set              <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
613
712
              win_wch                 <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
640
739
              wsetscrreg              <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
641
740
              wstandend               <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
642
741
              wstandout               <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
643
 
 
644
742
              wsyncdown               <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
645
743
              wsyncup                 <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
646
744
              wtimeout                <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
772
870
       NCURSES_ASSUMED_COLORS
773
871
            Override  the  compiled-in assumption that the termi-
774
872
            nal's  default   colors   are   white-on-black   (see
775
 
            <STRONG><A HREF="assume_default_colors.3x.html">assume_default_colors(3x)</A></STRONG>).   You  may  set the fore-
776
 
            ground and background color values with this environ-
777
 
            ment  variable  by  proving  a  2-element list: fore-
778
 
            ground,background.  For example, to tell  ncurses  to
779
 
            not  assume  anything  about  the colors, set this to
780
 
            "-1,-1".  To make it green-on-black, set it to "2,0".
781
 
            Any positive value from zero to the terminfo <STRONG>max_col-</STRONG>
782
 
            <STRONG>ors</STRONG> value is allowed.
 
873
            <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>).   You may set the foreground and
 
874
            background color values with this  environment  vari-
 
875
            able  by  proving  a 2-element list: foreground,back-
 
876
            ground.  For example, to tell ncurses to  not  assume
 
877
            anything  about  the colors, set this to "-1,-1".  To
 
878
            make it green-on-black, set it to "2,0".   Any  posi-
 
879
            tive value from zero to the terminfo <STRONG>max_colors</STRONG> value
 
880
            is allowed.
 
881
 
 
882
       NCURSES_GPM_TERMS
 
883
            This applies only to ncurses configured  to  use  the
 
884
            GPM interface.
 
885
 
 
886
            If present, the environment variable is a list of one
 
887
            or more terminal names against which the  TERM  envi-
 
888
            ronment  variable is matched.  Setting it to an empty
 
889
            value disables the GPM interface; using the  built-in
 
890
            support for xterm, etc.
 
891
 
 
892
            If  the  environment variable is absent, ncurses will
 
893
            attempt to open GPM if TERM contains "linux".
 
894
 
 
895
       NCURSES_NO_HARD_TABS
 
896
            <STRONG>Ncurses</STRONG> may use tabs as part of the  cursor  movement
 
897
            optimization.   In  some  cases, your terminal driver
 
898
            may not handle these properly.  Set this  environment
 
899
            variable to disable the feature.  You can also adjust
 
900
            your <STRONG>stty</STRONG> settings to avoid the problem.
 
901
 
 
902
       NCURSES_NO_MAGIC_COOKIES
 
903
            Some  terminals  use  a  magic-cookie  feature  which
 
904
            requires  special  handling  to make highlighting and
 
905
            other video attributes  display  properly.   You  can
 
906
            suppress  the  highlighting entirely for these termi-
 
907
            nals by setting this environment variable.
783
908
 
784
909
       NCURSES_NO_PADDING
785
910
            Most of the terminal  descriptions  in  the  terminfo
786
911
            database  are  written for real "hardware" terminals.
787
912
            Many people use terminal emulators  which  run  in  a
788
 
            windowing  environment  and use curses-based applica-
789
 
            tions.  Terminal emulators can duplicate all  of  the
790
 
            important aspects of a hardware terminal, but they do
791
 
            not have the same limitations.  The chief  limitation
792
 
            of  a  hardware  terminal from the standpoint of your
793
 
            application is the management of dataflow, i.e., tim-
794
 
            ing.  Unless a hardware terminal is interfaced into a
795
 
            terminal concentrator (which does flow  control),  it
796
 
            (or  your application) must manage dataflow, prevent-
797
 
            ing overruns.  The  cheapest  solution  (no  hardware
798
 
            cost) is for your program to do this by pausing after
799
 
            operations that the terminal  does  slowly,  such  as
800
 
            clearing the display.
 
913
            windowing    environment    and    use   curses-based
 
914
            applications.  Terminal emulators can  duplicate  all
 
915
            of  the important aspects of a hardware terminal, but
 
916
            they do not have the  same  limitations.   The  chief
 
917
            limitation of a hardware terminal from the standpoint
 
918
            of your application is the  management  of  dataflow,
 
919
            i.e.,  timing.   Unless a hardware terminal is inter-
 
920
            faced into a terminal concentrator (which  does  flow
 
921
            control),   it  (or  your  application)  must  manage
 
922
            dataflow, preventing overruns.  The cheapest solution
 
923
            (no  hardware cost) is for your program to do this by
 
924
            pausing  after  operations  that  the  terminal  does
 
925
            slowly, such as clearing the display.
801
926
 
802
927
            As  a  result,  many terminal descriptions (including
803
928
            the vt100) have delay times embedded.  You  may  wish
907
1032
 
908
1033
 
909
1034
</PRE>
 
1035
<H2>ALTERNATE CONFIGURATIONS</H2><PRE>
 
1036
       Several  different  configurations are possible, depending
 
1037
       on  the  configure  script  options  used  when   building
 
1038
       <STRONG>ncurses</STRONG>.   There  are a few main options whose effects are
 
1039
       visible to the applications developer using <STRONG>ncurses</STRONG>:
 
1040
 
 
1041
       --disable-overwrite
 
1042
            The standard include for <STRONG>ncurses</STRONG> is as noted in  <STRONG>SYN-</STRONG>
 
1043
            <STRONG>OPSIS</STRONG>:
 
1044
 
 
1045
            <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
1046
 
 
1047
            This  option is used to avoid filename conflicts when
 
1048
            <STRONG>ncurses</STRONG> is not the main implementation of  curses  of
 
1049
            the  computer.   If  <STRONG>ncurses</STRONG>  is  installed disabling
 
1050
            overwrite, it puts its  headers  in  a  subdirectory,
 
1051
            e.g.,
 
1052
 
 
1053
            <STRONG>#include</STRONG> <STRONG>&lt;ncurses/curses.h&gt;</STRONG>
 
1054
 
 
1055
            It  also  omits a symbolic link which would allow you
 
1056
            to use <STRONG>-lcurses</STRONG> to build executables.
 
1057
 
 
1058
       --enable-widec
 
1059
            The configure script renames the library and (if  the
 
1060
            <STRONG>--disable-overwrite</STRONG>  option  is used) puts the header
 
1061
            files  in  a  different  subdirectory.   All  of  the
 
1062
            library  names  have  a  "w"  appended to them, i.e.,
 
1063
            instead of
 
1064
 
 
1065
            <STRONG>-lncurses</STRONG>
 
1066
 
 
1067
            you link with
 
1068
 
 
1069
            <STRONG>-lncursesw</STRONG>
 
1070
 
 
1071
            You must also define <STRONG>_XOPEN_SOURCE_EXTENDED</STRONG> when com-
 
1072
            piling  for  the  wide-character  library  to use the
 
1073
            extended (wide-character)  functions.   The  <STRONG>curses.h</STRONG>
 
1074
            file   which  is  installed  for  the  wide-character
 
1075
            library is designed to be compatible with the  normal
 
1076
            library's header.  Only the size of the <STRONG>WINDOW</STRONG> struc-
 
1077
            ture differs, and very few applications require  more
 
1078
            than  a  pointer  to  <STRONG>WINDOW</STRONG>s.   If  the  headers are
 
1079
            installed  allowing  overwrite,  the   wide-character
 
1080
            library's  headers should be installed last, to allow
 
1081
            applications to be built using  either  library  from
 
1082
            the same set of headers.
 
1083
 
 
1084
       --with-shared
 
1085
 
 
1086
       --with-normal
 
1087
 
 
1088
       --with-debug
 
1089
 
 
1090
       --with-profile
 
1091
            The  shared  and normal (static) library names differ
 
1092
            by their  suffixes,  e.g.,  <STRONG>libncurses.so</STRONG>  and  <STRONG>libn-</STRONG>
 
1093
            <STRONG>curses.a</STRONG>.   The  debug  and profiling libraries add a
 
1094
            "_g" and a "_p" to the root names respectively, e.g.,
 
1095
            <STRONG>libncurses_g.a</STRONG> and <STRONG>libncurses_p.a</STRONG>.
 
1096
 
 
1097
       --with-trace
 
1098
            The  <STRONG>trace</STRONG>  function  normally  resides  in the debug
 
1099
            library, but it is sometimes useful to configure this
 
1100
            in  the  shared  library.   Configure  scripts should
 
1101
            check for the function's existence rather than assum-
 
1102
            ing it is always in the debug library.
 
1103
 
 
1104
 
 
1105
</PRE>
910
1106
<H2>FILES</H2><PRE>
911
1107
       /usr/share/tabset
912
1108
            directory  containing  initialization  files  for the
913
 
            terminal  capability   database   /usr/share/terminfo
914
 
            terminal capability database
 
1109
            terminal capability database /usr/share/terminfo ter-
 
1110
            minal capability database
915
1111
 
916
1112
 
917
1113
</PRE>
931
1127
       in core and startup cycles.
932
1128
 
933
1129
       The <STRONG>ncurses</STRONG>  library  includes  facilities  for  capturing
934
 
       mouse  events  on certain terminals (including xterm). See
 
1130
       mouse  events on certain terminals (including xterm).  See
935
1131
       the <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> manual page for details.
936
1132
 
937
1133
       The <STRONG>ncurses</STRONG> library includes facilities for responding  to
963
1159
</PRE>
964
1160
<H2>PORTABILITY</H2><PRE>
965
1161
       The  <STRONG>ncurses</STRONG>  library is intended to be BASE-level confor-
966
 
       mant with the  XSI  Curses  standard.   The  EXTENDED  XSI
967
 
       Curses  functionality  (including  color  support) is sup-
968
 
       ported.
 
1162
       mant with XSI Curses.  The EXTENDED XSI Curses functional-
 
1163
       ity (including color support) is supported.
969
1164
 
970
 
       A small number of local differences (that  is,  individual
971
 
       differences  between the XSI Curses and <STRONG>ncurses</STRONG> calls) are
972
 
       described in  <STRONG>PORTABILITY</STRONG>  sections  of  the  library  man
 
1165
       A  small  number of local differences (that is, individual
 
1166
       differences between the XSI Curses and <STRONG>ncurses</STRONG> calls)  are
 
1167
       described  in  <STRONG>PORTABILITY</STRONG>  sections  of  the  library man
973
1168
       pages.
974
1169
 
975
 
       The routine <STRONG>has_key</STRONG> is not part of XPG4, nor is it present
976
 
       in SVr4.  See the <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> manual page for  details.
977
 
 
978
 
       The  routine  <STRONG>slk_attr</STRONG>  is  not  part  of  XPG4, nor is it
979
 
       present in SVr4.  See the  <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>  manual  page  for
980
 
       details.
981
 
 
982
 
       The  routines <STRONG>getmouse</STRONG>, <STRONG>mousemask</STRONG>, <STRONG>ungetmouse</STRONG>, <STRONG>mouseinter-</STRONG>
983
 
       <STRONG>val</STRONG>, and <STRONG>wenclose</STRONG> relating to mouse  interfacing  are  not
984
 
       part  of  XPG4,  nor  are  they  present in SVr4.  See the
985
 
       <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> manual page for details.
986
 
 
987
 
       The routine <STRONG>mcprint</STRONG> was not present in any previous curses
988
 
       implementation.   See  the  <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG> manual page for
989
 
       details.
990
 
 
991
 
       The routine <STRONG>wresize</STRONG> is not part of XPG4, nor is it present
992
 
       in SVr4.  See the <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG> manual page for details.
993
 
 
994
 
       In  historic curses versions, delays embedded in the capa-
 
1170
       This implementation also contains several extensions:
 
1171
 
 
1172
            The routine <STRONG>has_key</STRONG> is not part of XPG4,  nor  is  it
 
1173
            present  in SVr4.  See the <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> manual page
 
1174
            for details.
 
1175
 
 
1176
            The routine <STRONG>slk_attr</STRONG> is not part of XPG4, nor  is  it
 
1177
            present  in  SVr4.   See the <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> manual page
 
1178
            for details.
 
1179
 
 
1180
            The routines <STRONG>getmouse</STRONG>,  <STRONG>mousemask</STRONG>,  <STRONG>ungetmouse</STRONG>,  <STRONG>mou-</STRONG>
 
1181
            <STRONG>seinterval</STRONG>,  and <STRONG>wenclose</STRONG> relating to mouse interfac-
 
1182
            ing are not part of XPG4, nor  are  they  present  in
 
1183
            SVr4.    See   the  <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>  manual  page  for
 
1184
            details.
 
1185
 
 
1186
            The routine <STRONG>mcprint</STRONG> was not present in  any  previous
 
1187
            curses implementation.  See the <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG> manual
 
1188
            page for details.
 
1189
 
 
1190
            The routine <STRONG>wresize</STRONG> is not part of XPG4,  nor  is  it
 
1191
            present in SVr4.  See the <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG> manual page for
 
1192
            details.
 
1193
 
 
1194
            The WINDOW structure's internal details can be hidden
 
1195
            from  application  programs.  See <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG> for
 
1196
            the discussion of <STRONG>is_scrollok</STRONG>, etc.
 
1197
 
 
1198
       In historic curses versions, delays embedded in the  capa-
995
1199
       bilities <STRONG>cr</STRONG>, <STRONG>ind</STRONG>, <STRONG>cub1</STRONG>, <STRONG>ff</STRONG> and <STRONG>tab</STRONG> activated corresponding
996
 
       delay  bits  in  the UNIX tty driver.  In this implementa-
997
 
       tion, all padding is done by NUL sends.   This  method  is
998
 
       slightly  more expensive, but narrows the interface to the
999
 
       UNIX kernel  significantly  and  increases  the  package's
1000
 
       portability correspondingly.
 
1200
       delay bits in the UNIX tty driver.   In  this  implementa-
 
1201
       tion,  all  padding  is  done  by sending NUL bytes.  This
 
1202
       method is slightly more expensive, but narrows the  inter-
 
1203
       face  to  the  UNIX kernel significantly and increases the
 
1204
       package's portability correspondingly.
1001
1205
 
1002
1206
 
1003
1207
</PRE>
1004
1208
<H2>NOTES</H2><PRE>
1005
 
       The  header  file  <STRONG>&lt;curses.h&gt;</STRONG>  automatically  includes the
 
1209
       The header  file  <STRONG>&lt;curses.h&gt;</STRONG>  automatically  includes  the
1006
1210
       header files <STRONG>&lt;stdio.h&gt;</STRONG> and <STRONG>&lt;unctrl.h&gt;</STRONG>.
1007
1211
 
1008
 
       If standard output from a <STRONG>ncurses</STRONG> program  is  re-directed
1009
 
       to  something  which  is not a tty, screen updates will be
 
1212
       If  standard  output from a <STRONG>ncurses</STRONG> program is re-directed
 
1213
       to something which is not a tty, screen  updates  will  be
1010
1214
       directed to standard error.  This was an undocumented fea-
1011
1215
       ture of AT&amp;T System V Release 3 curses.
1012
1216
 
1013
1217
 
1014
1218
</PRE>
1015
1219
<H2>AUTHORS</H2><PRE>
1016
 
       Zeyd  M.  Ben-Halim,  Eric  S.  Raymond, Thomas E. Dickey.
 
1220
       Zeyd M. Ben-Halim, Eric  S.  Raymond,  Thomas  E.  Dickey.
1017
1221
       Based on pcurses by Pavel Curtis.
1018
1222
 
1019
1223