-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The following routines give low-level access to various
- <B>curses</B> capabilities. Theses routines typically are used
- inside library routines.
-
- The <B>def_prog_mode</B> and <B>def_shell_mode</B> routines save the
- current terminal modes as the "program" (in <B>curses</B>) or
- "shell" (not in <B>curses</B>) state for use by the
- <B>reset_prog_mode</B> and <B>reset_shell_mode</B> routines. This is
- done automatically by <B>initscr</B>. There is one such save
- area for each screen context allocated by <B>newterm()</B>.
-
- The <B>reset_prog_mode</B> and <B>reset_shell_mode</B> routines restore
- the terminal to "program" (in <B>curses</B>) or "shell" (out of
- <B>curses</B>) state. These are done automatically by <B>endwin</B>
- and, after an <B>endwin</B>, by <B>doupdate</B>, so they normally are
- not called.
-
- The <B>resetty</B> and <B>savetty</B> routines save and restore the
- state of the terminal modes. <B>savetty</B> saves the current
- state in a buffer and <B>resetty</B> restores the state to what
- it was at the last call to <B>savetty</B>.
-
- The <B>getsyx</B> routine returns the current coordinates of the
- virtual screen cursor in <I>y</I> and <I>x</I>. If <B>leaveok</B> is currently
- <B>TRUE</B>, then <B>-1</B>,<B>-1</B> is returned. If lines have been removed
- from the top of the screen, using <B>ripoffline</B>, <I>y</I> and <I>x</I>
- include these lines; therefore, <I>y</I> and <I>x</I> should be used
- only as arguments for <B>setsyx</B>.
-
- The <B>setsyx</B> routine sets the virtual screen cursor to <I>y</I>, <I>x</I>.
- If <I>y</I> and <I>x</I> are both <B>-1</B>, then <B>leaveok</B> is set. The two rou-
- tines <B>getsyx</B> and <B>setsyx</B> are designed to be used by a
- library routine, which manipulates <B>curses</B> windows but does
- not want to change the current position of the program's
- cursor. The library routine would call <B>getsyx</B> at the
- beginning, do its manipulation of its own windows, do a
- <B>wnoutrefresh</B> on its windows, call <B>setsyx</B>, and then call
- <B>doupdate</B>.
-
- The <B>ripoffline</B> routine provides access to the same facil-
- ity that <B>slk_init</B> [see <B><A HREF="curs_slk.3x.html">curs_slk(3x)</A></B>] uses to reduce the
- size of the screen. <B>ripoffline</B> must be called before
- <B>initscr</B> or <B>newterm</B> is called. If <I>line</I> is positive, a line
- is removed from the top of <B>stdscr</B>; if <I>line</I> is negative, a
- line is removed from the bottom. When this is done inside
- <B>initscr</B>, the routine <B>init</B> (supplied by the user) is called
- with two arguments: a window pointer to the one-line win-
- dow that has been allocated and an integer with the number
- of columns in the window. Inside this initialization rou-
- tine, the integer variables <B>LINES</B> and <B>COLS</B> (defined in
- <B><curses.h></B>) are not guaranteed to be accurate and <B>wrefresh</B>
- or <B>doupdate</B> must not be called. It is allowable to call
- <B>wnoutrefresh</B> during the initialization routine.
-
- <B>ripoffline</B> can be called up to five times before calling
- <B>initscr</B> or <B>newterm</B>.
-
- The <B>curs_set</B> routine sets the cursor state is set to
- invisible, normal, or very visible for <B>visibility</B> equal to
- <B>0</B>, <B>1</B>, or <B>2</B> respectively. If the terminal supports the
- <I>visibility</I> requested, the previous <I>cursor</I> state is
- returned; otherwise, <B>ERR</B> is returned.
-
- The <B>napms</B> routine is used to sleep for <I>ms</I> milliseconds.
-