-</PRE>
-<H2>NAME</H2><PRE>
- <B>cbreak</B>, <B>nocbreak</B>, <B>echo</B>, <B>noecho</B>, <B>halfdelay</B>, <B>intrflush</B>, <B>key-</B>
- <B>pad</B>, <B>meta</B>, <B>nodelay</B>, <B>notimeout</B>, <B>raw</B>, <B>noraw</B>, <B>noqiflush</B>,
- <B>qiflush</B>, <B>timeout</B>, <B>wtimeout</B>, <B>typeahead</B> - <B>curses</B> input
- options
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B><curses.h></B>
-
- <B>int</B> <B>cbreak(void);</B>
- <B>int</B> <B>nocbreak(void);</B>
- <B>int</B> <B>echo(void);</B>
- <B>int</B> <B>noecho(void);</B>
- <B>int</B> <B>halfdelay(int</B> <B>tenths);</B>
- <B>int</B> <B>intrflush(WINDOW</B> <B>*win,</B> <B>bool</B> <B>bf);</B>
- <B>int</B> <B>keypad(WINDOW</B> <B>*win,</B> <B>bool</B> <B>bf);</B>
- <B>int</B> <B>meta(WINDOW</B> <B>*win,</B> <B>bool</B> <B>bf);</B>
- <B>int</B> <B>nodelay(WINDOW</B> <B>*win,</B> <B>bool</B> <B>bf);</B>
- <B>int</B> <B>raw(void);</B>
- <B>int</B> <B>noraw(void);</B>
- <B>void</B> <B>noqiflush(void);</B>
- <B>void</B> <B>qiflush(void);</B>
- <B>int</B> <B>notimeout(WINDOW</B> <B>*win,</B> <B>bool</B> <B>bf);</B>
- <B>void</B> <B>timeout(int</B> <B>delay);</B>
- <B>void</B> <B>wtimeout(WINDOW</B> <B>*win,</B> <B>int</B> <B>delay);</B>
- <B>int</B> <B>typeahead(int</B> <B>fd);</B>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- Normally, the tty driver buffers typed characters until a
- newline or carriage return is typed. The <B>cbreak</B> routine
- disables line buffering and erase/kill character-process-
- ing (interrupt and flow control characters are unaf-
- fected), making characters typed by the user immediately
- available to the program. The <B>nocbreak</B> routine returns
- the terminal to normal (cooked) mode.
-
- Initially the terminal may or may not be in <B>cbreak</B> mode,
- as the mode is inherited; therefore, a program should call
- <B>cbreak</B> or <B>nocbreak</B> explicitly. Most interactive programs
- using <B>curses</B> set the <B>cbreak</B> mode. Note that <B>cbreak</B> over-
- rides <B>raw</B>. [See <B><A HREF="curs_getch.3x.html">curs_getch(3x)</A></B> for a discussion of how
- these routines interact with <B>echo</B> and <B>noecho</B>.]
-
- The <B>echo</B> and <B>noecho</B> routines control whether characters
- typed by the user are echoed by <B>getch</B> as they are typed.
- Echoing by the tty driver is always disabled, but ini-
- tially <B>getch</B> is in echo mode, so characters typed are
- echoed. Authors of most interactive programs prefer to do
- their own echoing in a controlled area of the screen, or
- not to echo at all, so they disable echoing by calling
- <B>noecho</B>. [See <B><A HREF="curs_getch.3x.html">curs_getch(3x)</A></B> for a discussion of how these
- routines interact with <B>cbreak</B> and <B>nocbreak</B>.]
-
- The <B>halfdelay</B> routine is used for half-delay mode, which
- is similar to <B>cbreak</B> mode in that characters typed by the
- user are immediately available to the program. However,
- after blocking for <I>tenths</I> tenths of seconds, ERR is
- returned if nothing has been typed. The value of <B>tenths</B>
- must be a number between 1 and 255. Use <B>nocbreak</B> to leave
- half-delay mode.
-
- If the <B>intrflush</B> option is enabled, (<I>bf</I> is <B>TRUE</B>), when an
- interrupt key is pressed on the keyboard (interrupt,
- break, quit) all output in the tty driver queue will be
- flushed, giving the effect of faster response to the
- interrupt, but causing <B>curses</B> to have the wrong idea of
- what is on the screen. Disabling (<I>bf</I> is <B>FALSE</B>), the
- option prevents the flush. The default for the option is
- inherited from the tty driver settings. The window argu-
- ment is ignored.
-
- The <B>keypad</B> option enables the keypad of the user's termi-
- nal. If enabled (<I>bf</I> is <B>TRUE</B>), the user can press a func-
- tion key (such as an arrow key) and <B>wgetch</B> returns a sin-
- gle value representing the function key, as in <B>KEY_LEFT</B>.
- If disabled (<I>bf</I> is <B>FALSE</B>), <B>curses</B> does not treat function
- keys specially and the program has to interpret the escape
- sequences itself. If the keypad in the terminal can be
- turned on (made to transmit) and off (made to work
- locally), turning on this option causes the terminal key-
- pad to be turned on when <B>wgetch</B> is called. The default
- value for keypad is false.
-
- Initially, whether the terminal returns 7 or 8 significant
- bits on input depends on the control mode of the tty
- driver [see <B><A HREF="termio.7.html">termio(7)</A></B>]. To force 8 bits to be returned,
- invoke <B>meta</B>(<I>win</I>, <B>TRUE</B>); this is equivalent, under POSIX,
- to setting the CS8 flag on the terminal. To force 7 bits
- to be returned, invoke <B>meta</B>(<I>win</I>, <B>FALSE</B>); this is equiva-
- lent, under POSIX, to setting the CS8 flag on the termi-
- nal. The window argument, <I>win</I>, is always ignored. If the
- terminfo capabilities <B>smm</B> (meta_on) and <B>rmm</B> (meta_off) are
- defined for the terminal, <B>smm</B> is sent to the terminal when
- <B>meta</B>(<I>win</I>, <B>TRUE</B>) is called and <B>rmm</B> is sent when <B>meta</B>(<I>win</I>,
- <B>FALSE</B>) is called.
-
- The <B>nodelay</B> option causes <B>getch</B> to be a non-blocking call.
- If no input is ready, <B>getch</B> returns <B>ERR</B>. If disabled (<I>bf</I>
- is <B>FALSE</B>), <B>getch</B> waits until a key is pressed.
-
- While interpreting an input escape sequence, <B>wgetch</B> sets a
- timer while waiting for the next character. If <B>notime-</B>
- <B>out(</B><I>win</I>, <B>TRUE</B>) is called, then <B>wgetch</B> does not set a
- timer. The purpose of the timeout is to differentiate
- between sequences received from a function key and those
- typed by a user.