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.
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
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).
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.
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
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>.
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.
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
99
The library uses the locale which the calling program has
100
initialized. That is normally done with <STRONG>setlocale</STRONG>:
102
<STRONG>setlocale(LC_ALL,</STRONG> <STRONG>"");</STRONG>
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.
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.
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:
99
119
<STRONG>initscr();</STRONG> <STRONG>cbreak();</STRONG> <STRONG>noecho();</STRONG>
119
139
be created with <STRONG>newwin</STRONG>.
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.
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>.
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
216
236
<STRONG>DOW</STRONG>.
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><curses.h></STRONG>. The type <STRONG>TERMINAL</STRONG> is defined in <STRONG><term.h></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><curses.h></STRONG>.
242
Types used for the terminfo routines such as <STRONG>TERMINAL</STRONG> are
243
defined in <STRONG><term.h></STRONG>.
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:
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>
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.
260
Each cell (row and column) in a <STRONG>WINDOW</STRONG> is
261
stored as a <STRONG>chtype</STRONG>.
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-
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.
282
Each cell (row and column) in a <STRONG>WINDOW</STRONG> is
283
stored as a <STRONG>cchar_t</STRONG>.
285
<STRONG>wchar_t</STRONG>
286
stores a "wide" character. Like <STRONG>chtype</STRONG>,
287
this may be an integer.
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.
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>.
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
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>
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>*
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>*
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
883
This applies only to ncurses configured to use the
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.
892
If the environment variable is absent, ncurses will
893
attempt to open GPM if TERM contains "linux".
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.
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.
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.
802
927
As a result, many terminal descriptions (including
803
928
the vt100) have delay times embedded. You may wish
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>:
1042
The standard include for <STRONG>ncurses</STRONG> is as noted in <STRONG>SYN-</STRONG>
1043
<STRONG>OPSIS</STRONG>:
1045
<STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
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,
1053
<STRONG>#include</STRONG> <STRONG><ncurses/curses.h></STRONG>
1055
It also omits a symbolic link which would allow you
1056
to use <STRONG>-lcurses</STRONG> to build executables.
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.,
1065
<STRONG>-lncurses</STRONG>
1069
<STRONG>-lncursesw</STRONG>
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.
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>.
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.
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
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-
1162
mant with XSI Curses. The EXTENDED XSI Curses functional-
1163
ity (including color support) is supported.
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
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.
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
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.
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
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.
994
In historic curses versions, delays embedded in the capa-
1170
This implementation also contains several extensions:
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
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
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
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
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
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.
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.
1004
1208
<H2>NOTES</H2><PRE>
1005
The header file <STRONG><curses.h></STRONG> automatically includes the
1209
The header file <STRONG><curses.h></STRONG> automatically includes the
1006
1210
header files <STRONG><stdio.h></STRONG> and <STRONG><unctrl.h></STRONG>.
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&T System V Release 3 curses.
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.