4 <!-- Manpage converted by man2html 3.0.1 -->
8 <B>cbreak</B>, <B>nocbreak</B>, <B>echo</B>, <B>noecho</B>, <B>halfdelay</B>, <B>intrflush</B>, <B>key-</B>
9 <B>pad</B>, <B>meta</B>, <B>nodelay</B>, <B>notimeout</B>, <B>raw</B>, <B>noraw</B>, <B>noqiflush</B>,
10 <B>qiflush</B>, <B>timeout</B>, <B>wtimeout</B>, <B>typeahead</B> - <B>curses</B> input
15 <H2>SYNOPSIS</H2><PRE>
16 <B>#include</B> <B><curses.h></B>
18 <B>int</B> <B>cbreak(void);</B>
19 <B>int</B> <B>nocbreak(void);</B>
20 <B>int</B> <B>echo(void);</B>
21 <B>int</B> <B>noecho(void);</B>
22 <B>int</B> <B>halfdelay(int</B> <B>tenths);</B>
23 <B>int</B> <B>intrflush(WINDOW</B> <B>*win,</B> <B>bool</B> <B>bf);</B>
24 <B>int</B> <B>keypad(WINDOW</B> <B>*win,</B> <B>bool</B> <B>bf);</B>
25 <B>int</B> <B>meta(WINDOW</B> <B>*win,</B> <B>bool</B> <B>bf);</B>
26 <B>int</B> <B>nodelay(WINDOW</B> <B>*win,</B> <B>bool</B> <B>bf);</B>
27 <B>int</B> <B>raw(void);</B>
28 <B>int</B> <B>noraw(void);</B>
29 <B>void</B> <B>noqiflush(void);</B>
30 <B>void</B> <B>qiflush(void);</B>
31 <B>int</B> <B>notimeout(WINDOW</B> <B>*win,</B> <B>bool</B> <B>bf);</B>
32 <B>void</B> <B>timeout(int</B> <B>delay);</B>
33 <B>void</B> <B>wtimeout(WINDOW</B> <B>*win,</B> <B>int</B> <B>delay);</B>
34 <B>int</B> <B>typeahead(int</B> <B>fd);</B>
38 <H2>DESCRIPTION</H2><PRE>
39 Normally, the tty driver buffers typed characters until a
40 newline or carriage return is typed. The <B>cbreak</B> routine
41 disables line buffering and erase/kill character-process-
42 ing (interrupt and flow control characters are unaf-
43 fected), making characters typed by the user immediately
44 available to the program. The <B>nocbreak</B> routine returns
45 the terminal to normal (cooked) mode.
47 Initially the terminal may or may not be in <B>cbreak</B> mode,
48 as the mode is inherited; therefore, a program should call
49 <B>cbreak</B> or <B>nocbreak</B> explicitly. Most interactive programs
50 using <B>curses</B> set the <B>cbreak</B> mode. Note that <B>cbreak</B> over-
51 rides <B>raw</B>. [See <B><A HREF="curs_getch.3x.html">curs_getch(3x)</A></B> for a discussion of how
52 these routines interact with <B>echo</B> and <B>noecho</B>.]
54 The <B>echo</B> and <B>noecho</B> routines control whether characters
55 typed by the user are echoed by <B>getch</B> as they are typed.
56 Echoing by the tty driver is always disabled, but ini-
57 tially <B>getch</B> is in echo mode, so characters typed are
58 echoed. Authors of most interactive programs prefer to do
59 their own echoing in a controlled area of the screen, or
60 not to echo at all, so they disable echoing by calling
61 <B>noecho</B>. [See <B><A HREF="curs_getch.3x.html">curs_getch(3x)</A></B> for a discussion of how these
62 routines interact with <B>cbreak</B> and <B>nocbreak</B>.]
64 The <B>halfdelay</B> routine is used for half-delay mode, which
65 is similar to <B>cbreak</B> mode in that characters typed by the
66 user are immediately available to the program. However,
67 after blocking for <I>tenths</I> tenths of seconds, ERR is
68 returned if nothing has been typed. The value of <B>tenths</B>
69 must be a number between 1 and 255. Use <B>nocbreak</B> to leave
72 If the <B>intrflush</B> option is enabled, (<I>bf</I> is <B>TRUE</B>), when an
73 interrupt key is pressed on the keyboard (interrupt,
74 break, quit) all output in the tty driver queue will be
75 flushed, giving the effect of faster response to the
76 interrupt, but causing <B>curses</B> to have the wrong idea of
77 what is on the screen. Disabling (<I>bf</I> is <B>FALSE</B>), the
78 option prevents the flush. The default for the option is
79 inherited from the tty driver settings. The window argu-
82 The <B>keypad</B> option enables the keypad of the user's termi-
83 nal. If enabled (<I>bf</I> is <B>TRUE</B>), the user can press a func-
84 tion key (such as an arrow key) and <B>wgetch</B> returns a sin-
85 gle value representing the function key, as in <B>KEY_LEFT</B>.
86 If disabled (<I>bf</I> is <B>FALSE</B>), <B>curses</B> does not treat function
87 keys specially and the program has to interpret the escape
88 sequences itself. If the keypad in the terminal can be
89 turned on (made to transmit) and off (made to work
90 locally), turning on this option causes the terminal key-
91 pad to be turned on when <B>wgetch</B> is called. The default
92 value for keypad is false.
94 Initially, whether the terminal returns 7 or 8 significant
95 bits on input depends on the control mode of the tty
96 driver [see <B><A HREF="termio.7.html">termio(7)</A></B>]. To force 8 bits to be returned,
97 invoke <B>meta</B>(<I>win</I>, <B>TRUE</B>); this is equivalent, under POSIX,
98 to setting the CS8 flag on the terminal. To force 7 bits
99 to be returned, invoke <B>meta</B>(<I>win</I>, <B>FALSE</B>); this is equiva-
100 lent, under POSIX, to setting the CS8 flag on the termi-
101 nal. The window argument, <I>win</I>, is always ignored. If the
102 terminfo capabilities <B>smm</B> (meta_on) and <B>rmm</B> (meta_off) are
103 defined for the terminal, <B>smm</B> is sent to the terminal when
104 <B>meta</B>(<I>win</I>, <B>TRUE</B>) is called and <B>rmm</B> is sent when <B>meta</B>(<I>win</I>,
105 <B>FALSE</B>) is called.
107 The <B>nodelay</B> option causes <B>getch</B> to be a non-blocking call.
108 If no input is ready, <B>getch</B> returns <B>ERR</B>. If disabled (<I>bf</I>
109 is <B>FALSE</B>), <B>getch</B> waits until a key is pressed.
111 While interpreting an input escape sequence, <B>wgetch</B> sets a
112 timer while waiting for the next character. If <B>notime-</B>
113 <B>out(</B><I>win</I>, <B>TRUE</B>) is called, then <B>wgetch</B> does not set a
114 timer. The purpose of the timeout is to differentiate
115 between sequences received from a function key and those
118 The <B>raw</B> and <B>noraw</B> routines place the terminal into or out
119 of raw mode. Raw mode is similar to <B>cbreak</B> mode, in that
120 characters typed are immediately passed through to the
121 user program. The differences are that in raw mode, the
122 interrupt, quit, suspend, and flow control characters are
123 all passed through uninterpreted, instead of generating a
124 signal. The behavior of the BREAK key depends on other
125 bits in the tty driver that are not set by <B>curses</B>.
127 When the <B>noqiflush</B> routine is used, normal flush of input
128 and output queues associated with the <B>INTR</B>, <B>QUIT</B> and <B>SUSP</B>
129 characters will not be done [see <B><A HREF="termio.7.html">termio(7)</A></B>]. When <B>qiflush</B>
130 is called, the queues will be flushed when these control
131 characters are read. You may want to call <B>noqiflush()</B> in
132 a signal handler if you want output to continue as though
133 the interrupt had not occurred, after the handler exits.
135 The <B>timeout</B> and <B>wtimeout</B> routines set blocking or non-
136 blocking read for a given window. If <I>delay</I> is negative,
137 blocking read is used (<I>i</I>.<I>e</I>., waits indefinitely for
138 input). If <I>delay</I> is zero, then non-blocking read is used
139 (<I>i</I>.<I>e</I>., read returns <B>ERR</B> if no input is waiting). If <I>delay</I>
140 is positive, then read blocks for <I>delay</I> milliseconds, and
141 returns <B>ERR</B> if there is still no input. Hence, these rou-
142 tines provide the same functionality as <B>nodelay</B>, plus the
143 additional capability of being able to block for only
144 <I>delay</I> milliseconds (where <I>delay</I> is positive).
146 The <B>curses</B> library does ``line-breakout optimization'' by
147 looking for typeahead periodically while updating the
148 screen. If input is found, and it is coming from a tty,
149 the current update is postponed until <B>refresh</B> or <B>doupdate</B>
150 is called again. This allows faster response to commands
151 typed in advance. Normally, the input FILE pointer passed
152 to <B>newterm</B>, or <B>stdin</B> in the case that <B>initscr</B> was used,
153 will be used to do this typeahead checking. The <B>typeahead</B>
154 routine specifies that the file descriptor <I>fd</I> is to be
155 used to check for typeahead instead. If <I>fd</I> is -1, then no
156 typeahead checking is done.
160 <H2>RETURN VALUE</H2><PRE>
161 All routines that return an integer return <B>ERR</B> upon fail-
162 ure and OK (SVr4 specifies only "an integer value other
163 than <B>ERR</B>") upon successful completion, unless otherwise
164 noted in the preceding routine descriptions.
168 <H2>PORTABILITY</H2><PRE>
169 These functions are described in the XSI Curses standard,
172 The ncurses library obeys the XPG4 standard and the his-
173 torical practice of the AT&T curses implementations, in
174 that the echo bit is cleared when curses initializes the
175 terminal state. BSD curses differed from this slightly;
176 it left the echo bit on at initialization, but the BSD <B>raw</B>
177 call turned it off as a side-effect. For best portabil-
178 ity, set echo or noecho explicitly just after initializa-
179 tion, even if your program remains in cooked mode.
184 Note that <B>echo</B>, <B>noecho</B>, <B>halfdelay</B>, <B>intrflush</B>, <B>meta</B>, <B>node-</B>
185 <B>lay</B>, <B>notimeout</B>, <B>noqiflush</B>, <B>qiflush</B>, <B>timeout</B>, and <B>wtimeout</B>
188 The <B>noraw</B> and <B>nocbreak</B> calls follow historical practice in
189 that they attempt to restore to normal (`cooked') mode
190 from raw and cbreak modes respectively. Mixing raw/noraw
191 and cbreak/nocbreak calls leads to tty driver control
192 states that are hard to predict or understand; it is not
197 <H2>SEE ALSO</H2><PRE>
198 <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="curs_getch.3x.html">curs_getch(3x)</A></B>, <B><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></B>, <B><A HREF="termio.7.html">termio(7)</A></B>
238 Man(1) output converted with
239 <a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>