.\" Copyright (c) 1980 Regents of the University of California.
.\" All rights reserved.  The Berkeley software License Agreement
.\" specifies the terms and conditions for redistribution.
.\"
.\"	@(#)doc.II	6.1 (Berkeley) 4/23/86
.\"
.Ds
.Fd cbreak "" \*m
.Fd nocbreak "" \*m
.Fd crmode "" \*m
.Fd nocrmode "" \*m
.De
Set or unset the terminal to/from cbreak mode.
The misnamed macros
.Fn crmode
and
.Fn nocrmode
are retained for backwards compatibility
with ealier versions of the library.
.Ds
.Fd echo "" \*m
.Fd noecho "" \*m
.De
Sets the terminal to echo or not echo characters.
.Ds
.Fd getch "" \*m
.Fd wgetch win
WINDOW	*win;
.De
Gets a character from the terminal and (if necessary)
echos it on the window.
\*(Es
Otherwise, the character gotten is returned.
If
.i noecho
has been set, then the window is left unaltered.
In order to retain control of the terminal,
it is necessary to have one of
.i noecho ,
.i cbreak ,
or
.i rawmode
set.
If you do not set one,
whatever routine you call to read characters will set
.i cbreak
for you,
and then reset to the original mode when finished.
.Ds
.Fd getstr str \*m
char	*str;
.Fd wgetstr win\*,str
WINDOW	*win;
char	*str;
.De
Get a string through the window
and put it in the location pointed to by
.Vn str ,
which is assumed to be large enough to handle it.
It sets tty modes if necessary,
and then calls
.Fn getch
(or
.Fn wgetch ) "" win
to get the characters needed to fill in the string
until a newline or EOF is encountered.
The newline stripped off the string.
\*(Es
.Ds
.Fd \*_putchar c
char	c;
.De
Put out a character using the
.Fn putchar
macro.
This function is used to output every character
that
.b curses
generates.
Thus,
it can be redefined by the user who wants to do non-standard things
with the output.
It is named with an initial \*(lq\*_\*(rq
because it usually should be invisible to the programmer.
.Ds
.Fd raw "" \*m
.Fd noraw "" \*m
.De
Set or unset the terminal to/from raw mode.
On version 7
.Un \**
.(f
\**
.Un
is a trademark of Bell Laboratories.
.)f
this also turns of newline mapping
(see
.Fn nl ).
.Ds
.Fd scanw fmt\*,arg1\*,arg2\*,...
char	*fmt;
.Fd wscanw win\*,fmt\*,arg1\*,arg2\*,...
WINDOW	*win;
char	*fmt;
.De
Perform a
.Fn scanf
through the window using
.Vn fmt .
It does this using consecutive
.Fn getch 's
(or
.Fn wgetch 's). "" win
\*(Es
