+<!--
+ ****************************************************************************
+ * Copyright (c) 1998-2017,2018 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+ * "Software"), to deal in the Software without restriction, including *
+ * without limitation the rights to use, copy, modify, merge, publish, *
+ * distribute, distribute with modifications, sublicense, and/or sell *
+ * copies of the Software, and to permit persons to whom the Software is *
+ * furnished to do so, subject to the following conditions: *
+ * *
+ * The above copyright notice and this permission notice shall be included *
+ * in all copies or substantial portions of the Software. *
+ * *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
+ * *
+ * Except as contained in this notice, the name(s) of the above copyright *
+ * holders shall not be used in advertising or otherwise to promote the *
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+ * @Id: curs_outopts.3x,v 1.29 2018/07/28 22:59:02 tom Exp @
+-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
+<HEAD>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
+<TITLE>curs_outopts 3x</TITLE>
+<link rel="author" href="mailto:bug-ncurses@gnu.org">
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</HEAD>
<BODY>
+<H1 class="no-header">curs_outopts 3x</H1>
<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
+<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG> <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
-</PRE>
-<H2>NAME</H2><PRE>
- <B>clearok</B>, <B>idlok</B>, <B>idcok</B> <B>immedok</B>, <B>leaveok</B>, <B>setscrreg</B>,
- <B>wsetscrreg</B>, <B>scrollok</B>, <B>nl</B>, <B>nonl</B> - <B>curses</B> output options
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B><curses.h></B>
-
- <B>int</B> <B>clearok(WINDOW</B> <B>*win,</B> <B>bool</B> <B>bf);</B>
- <B>int</B> <B>idlok(WINDOW</B> <B>*win,</B> <B>bool</B> <B>bf);</B>
- <B>void</B> <B>idcok(WINDOW</B> <B>*win,</B> <B>bool</B> <B>bf);</B>
- <B>void</B> <B>immedok(WINDOW</B> <B>*win,</B> <B>bool</B> <B>bf);</B>
- <B>int</B> <B>leaveok(WINDOW</B> <B>*win,</B> <B>bool</B> <B>bf);</B>
- <B>int</B> <B>setscrreg(int</B> <B>top,</B> <B>int</B> <B>bot);</B>
- <B>int</B> <B>wsetscrreg(WINDOW</B> <B>*win,</B> <B>int</B> <B>top,</B> <B>int</B> <B>bot);</B>
- <B>int</B> <B>scrollok(WINDOW</B> <B>*win,</B> <B>bool</B> <B>bf);</B>
- <B>int</B> <B>nl(void);</B>
- <B>int</B> <B>nonl(void);</B>
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- These routines set options that change the style of output
- within <B>curses</B>. All options are initially <B>FALSE</B>, unless
- otherwise stated. It is not necessary to turn these
- options off before calling <B>endwin</B>.
-
- If <B>clearok</B> is called with <B>TRUE</B> as argument, the next call
- to <B>wrefresh</B> with this window will clear the screen com-
- pletely and redraw the entire screen from scratch. This
- is useful when the contents of the screen are uncertain,
- or in some cases for a more pleasing visual effect. If
- the <I>win</I> argument to <B>clearok</B> is the global variable <B>curscr</B>,
- the next call to <B>wrefresh</B> with any window causes the
- screen to be cleared and repainted from scratch.
-
- If <B>idlok</B> is called with <B>TRUE</B> as second argument, <B>curses</B>
- considers using the hardware insert/delete line feature of
- terminals so equipped. Calling <B>idlok</B> with <B>FALSE</B> as second
- argument disables use of line insertion and deletion.
- This option should be enabled only if the application
- needs insert/delete line, for example, for a screen edi-
- tor. It is disabled by default because insert/delete line
- tends to be visually annoying when used in applications
- where it isn't really needed. If insert/delete line can-
- not be used, <B>curses</B> redraws the changed portions of all
- lines.
-
- If <B>idcok</B> is called with <B>FALSE</B> as second argument, <B>curses</B>
- no longer considers using the hardware insert/delete char-
- acter feature of terminals so equipped. Use of character
- insert/delete is enabled by default. Calling <B>idcok</B> with
- <B>TRUE</B> as second argument re-enables use of character inser-
- tion and deletion.
-
- If <B>immedok</B> is called with <B>TRUE</B> <B>as</B> <B>argument</B>, any change in
- the window image, such as the ones caused by <B>waddch,</B>
- <B>wclrtobot,</B> <B>wscrl</B>, <I>etc</I>., automatically cause a call to <B>wre-</B>
- <B>fresh</B>. However, it may degrade performance considerably,
- due to repeated calls to <B>wrefresh</B>. It is disabled by
- default.
-
- Normally, the hardware cursor is left at the location of
- the window cursor being refreshed. The <B>leaveok</B> option
- allows the cursor to be left wherever the update happens
- to leave it. It is useful for applications where the cur-
- sor is not used, since it reduces the need for cursor
- motions. If possible, the cursor is made invisible when
- this option is enabled.
-
- The <B>setscrreg</B> and <B>wsetscrreg</B> routines allow the applica-
- tion programmer to set a software scrolling region in a
- window. <I>top</I> and <I>bot</I> are the line numbers of the top and
- bottom margin of the scrolling region. (Line 0 is the top
- line of the window.) If this option and <B>scrollok</B> are
- enabled, an attempt to move off the bottom margin line
- causes all lines in the scrolling region to scroll one
- line in the direction of the first line. Only the text of
- the window is scrolled. (Note that this has nothing to do
- with the use of a physical scrolling region capability in
- the terminal, like that in the VT100. If <B>idlok</B> is enabled
- and the terminal has either a scrolling region or
- insert/delete line capability, they will probably be used
- by the output routines.)
-
- The <B>scrollok</B> option controls what happens when the cursor
- of a window is moved off the edge of the window or
- scrolling region, either as a result of a newline action
- on the bottom line, or typing the last character of the
- last line. If disabled, (<I>bf</I> is <B>FALSE</B>), the cursor is left
- on the bottom line. If enabled, (<I>bf</I> is <B>TRUE</B>), the window
- is scrolled up one line (Note that in order to get the
- physical scrolling effect on the terminal, it is also nec-
- essary to call <B>idlok</B>).
-
- The <B>nl</B> and <B>nonl</B> routines control whether the underlying
- display device translates the return key into newline on
- input, and whether it translates newline into return and
- line-feed on output (in either case, the call <B>addch('\n')</B>
- does the equivalent of return and line feed on the virtual
- screen). Initially, these translations do occur. If you
- disable them using <B>nonl</B>, <B>curses</B> will be able to make bet-
- ter use of the line-feed capability, resulting in faster
- cursor motion. Also, <B>curses</B> will then be able to detect
- the return key.
+
+</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
+ <STRONG>clearok</STRONG>, <STRONG>idlok</STRONG>, <STRONG>idcok</STRONG>, <STRONG>immedok</STRONG>, <STRONG>leaveok</STRONG>, <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>,
+ <STRONG>scrollok</STRONG>, <STRONG>nl</STRONG>, <STRONG>nonl</STRONG> - <STRONG>curses</STRONG> output options
+
+
+</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
+ <STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
+
+ <STRONG>int</STRONG> <STRONG>clearok(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>bool</STRONG> <EM>bf</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>idlok(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>bool</STRONG> <EM>bf</EM><STRONG>);</STRONG>
+ <STRONG>void</STRONG> <STRONG>idcok(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>bool</STRONG> <EM>bf</EM><STRONG>);</STRONG>
+ <STRONG>void</STRONG> <STRONG>immedok(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>bool</STRONG> <EM>bf</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>leaveok(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>bool</STRONG> <EM>bf</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>setscrreg(int</STRONG> <EM>top</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>bot</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>wsetscrreg(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>top</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>bot</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>scrollok(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>bool</STRONG> <EM>bf</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>nl(void);</STRONG>
+ <STRONG>int</STRONG> <STRONG>nonl(void);</STRONG>
+
+
+</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
+ These routines set options that change the style of output within <STRONG>curs-</STRONG>
+ <STRONG>es</STRONG>. All options are initially <STRONG>FALSE</STRONG>, unless otherwise stated. It is
+ not necessary to turn these options off before calling <STRONG><A HREF="curs_initscr.3x.html">endwin(3x)</A></STRONG>.
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- The functions <B>setscrreg</B> and <B>wsetscrreg</B> return <B>OK</B> upon suc-
- cess and <B>ERR</B> upon failure. All other routines that return
- an integer always return <B>OK</B>.
+</PRE><H3><a name="h3-clearok">clearok</a></H3><PRE>
+ If <STRONG>clearok</STRONG> is called with <STRONG>TRUE</STRONG> as argument, the next call to <STRONG>wrefresh</STRONG>
+ with this window will clear the screen completely and redraw the entire
+ screen from scratch. This is useful when the contents of the screen
+ are uncertain, or in some cases for a more pleasing visual effect. If
+ the <EM>win</EM> argument to <STRONG>clearok</STRONG> is the global variable <STRONG>curscr</STRONG>, the next
+ call to <STRONG>wrefresh</STRONG> with any window causes the screen to be cleared and
+ repainted from scratch.
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These functions are described in the XSI Curses standard,
- Issue 4.
-
- The XSI Curses standard is ambiguous on the question of
- whether <B>raw</B>() should disable the CRLF translations con-
- trolled by <B>nl</B>() and <B>nonl</B>(). BSD curses did turn off these
- translations; AT&T curses (at least as late as SVr1) did
- not. We choose to do so, on the theory that a programmer
- requesting raw input wants a clean (ideally 8-bit clean)
- connection that the operating system does not mess with.
-
- Some historic curses implementations had, as an undocu-
- mented feature, the ability to do the equivalent of
- <B>clearok(...,</B> <B>1)</B> by saying <B>touchwin(stdscr)</B> or <B>clear(std-</B>
- <B>scr)</B>. This will not work under ncurses.
-
- Earlier System V curses implementations specified that
- with <B>scrollok</B> enabled, any window modification triggering
- a scroll also forced a physical refresh. XSI Curses does
- not require this, and <B>ncurses</B> avoids doing it in order to
- perform better vertical-motion optimization at <B>wrefresh</B>
- time.
+</PRE><H3><a name="h3-idlok">idlok</a></H3><PRE>
+ If <STRONG>idlok</STRONG> is called with <STRONG>TRUE</STRONG> as second argument, <STRONG>curses</STRONG> considers using
+ the hardware insert/delete line feature of terminals so equipped.
+ Calling <STRONG>idlok</STRONG> with <STRONG>FALSE</STRONG> as second argument disables use of line inser-
+ tion and deletion. This option should be enabled only if the applica-
+ tion needs insert/delete line, for example, for a screen editor. It is
+ disabled by default because insert/delete line tends to be visually an-
+ noying when used in applications where it is not really needed. If in-
+ sert/delete line cannot be used, <STRONG>curses</STRONG> redraws the changed portions of
+ all lines.
- The XSI Curses standard does not mention that the cursor
- should be made invisible as a side-effect of <B>leaveok</B>.
- SVr4 curses documentation does this, but the code does
- not. Use <B>curs_set</B> to make the cursor invisible.
+</PRE><H3><a name="h3-idcok">idcok</a></H3><PRE>
+ If <STRONG>idcok</STRONG> is called with <STRONG>FALSE</STRONG> as second argument, <STRONG>curses</STRONG> no longer con-
+ siders using the hardware insert/delete character feature of terminals
+ so equipped. Use of character insert/delete is enabled by default.
+ Calling <STRONG>idcok</STRONG> with <STRONG>TRUE</STRONG> as second argument re-enables use of character
+ insertion and deletion.
-</PRE>
-<H2>NOTES</H2><PRE>
- Note that <B>clearok</B>, <B>leaveok</B>, <B>scrollok</B>, <B>idcok</B>, <B>nl</B>, <B>nonl</B> and
- <B>setscrreg</B> may be macros.
- The <B>immedok</B> routine is useful for windows that are used as
- terminal emulators.
+</PRE><H3><a name="h3-immedok">immedok</a></H3><PRE>
+ If <STRONG>immedok</STRONG> is called with <STRONG>TRUE</STRONG> <STRONG>as</STRONG> <STRONG>argument</STRONG>, any change in the window
+ image, such as the ones caused by <STRONG>waddch,</STRONG> <STRONG>wclrtobot,</STRONG> <STRONG>wscrl</STRONG>, etc., auto-
+ matically cause a call to <STRONG>wrefresh</STRONG>. However, it may degrade perfor-
+ mance considerably, due to repeated calls to <STRONG>wrefresh</STRONG>. It is disabled
+ by default.
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <B><A HREF="ncurses.3x.html">curses(3x)</A></B>, <B><A HREF="curs_addch.3x.html">curs_addch(3x)</A></B>, <B><A HREF="curs_clear.3x.html">curs_clear(3x)</A></B>,
- <B><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></B>, <B><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></B>, <B><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></B>
+</PRE><H3><a name="h3-leaveok">leaveok</a></H3><PRE>
+ Normally, the hardware cursor is left at the location of the window
+ cursor being refreshed. The <STRONG>leaveok</STRONG> option allows the cursor to be
+ left wherever the update happens to leave it. It is useful for appli-
+ cations where the cursor is not used, since it reduces the need for
+ cursor motions.
+</PRE><H3><a name="h3-setscrreg">setscrreg</a></H3><PRE>
+ The <STRONG>setscrreg</STRONG> and <STRONG>wsetscrreg</STRONG> routines allow the application programmer
+ to set a software scrolling region in a window. The <EM>top</EM> and <EM>bot</EM> param-
+ eters are the line numbers of the top and bottom margin of the
+ scrolling region. (Line 0 is the top line of the window.) If this op-
+ tion and <STRONG>scrollok</STRONG> are enabled, an attempt to move off the bottom margin
+ line causes all lines in the scrolling region to scroll one line in the
+ direction of the first line. Only the text of the window is scrolled.
+ (Note that this has nothing to do with the use of a physical scrolling
+ region capability in the terminal, like that in the VT100. If <STRONG>idlok</STRONG> is
+ enabled and the terminal has either a scrolling region or insert/delete
+ line capability, they will probably be used by the output routines.)
+</PRE><H3><a name="h3-scrollok">scrollok</a></H3><PRE>
+ The <STRONG>scrollok</STRONG> option controls what happens when the cursor of a window
+ is moved off the edge of the window or scrolling region, either as a
+ result of a newline action on the bottom line, or typing the last char-
+ acter of the last line. If disabled, (<EM>bf</EM> is <STRONG>FALSE</STRONG>), the cursor is left
+ on the bottom line. If enabled, (<EM>bf</EM> is <STRONG>TRUE</STRONG>), the window is scrolled
+ up one line (Note that to get the physical scrolling effect on the ter-
+ minal, it is also necessary to call <STRONG>idlok</STRONG>).
+</PRE><H3><a name="h3-nl_-nonl">nl, nonl</a></H3><PRE>
+ The <STRONG>nl</STRONG> and <STRONG>nonl</STRONG> routines control whether the underlying display device
+ translates the return key into newline on input, and whether it trans-
+ lates newline into return and line-feed on output (in either case, the
+ call <STRONG>addch('\n')</STRONG> does the equivalent of return and line feed on the
+ <EM>virtual</EM> <EM>screen</EM>). Initially, these translations do occur. If you dis-
+ able them using <STRONG>nonl</STRONG>, <STRONG>curses</STRONG> will be able to make better use of the
+ line-feed capability, resulting in faster cursor motion. Also, <STRONG>curses</STRONG>
+ will then be able to detect the return key.
+
+
+</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
+ The functions <STRONG>setscrreg</STRONG> and <STRONG>wsetscrreg</STRONG> return <STRONG>OK</STRONG> upon success and <STRONG>ERR</STRONG>
+ upon failure. All other routines that return an integer always return
+ <STRONG>OK</STRONG>.
+
+ X/Open Curses does not define any error conditions.
+
+ In this implementation, those functions that have a window pointer will
+ return an error if the window pointer is null.
+
+ <STRONG>wclrtoeol</STRONG>
+ returns an error if the cursor position is about to wrap.
+
+ <STRONG>wsetscrreg</STRONG>
+ returns an error if the scrolling region limits extend out-
+ side the window.
+
+ X/Open does not define any error conditions. This implementation re-
+ turns an error if the window pointer is null.
+
+
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ These functions are described in the XSI Curses standard, Issue 4.
+
+ The XSI Curses standard is ambiguous on the question of whether <STRONG>raw</STRONG>
+ should disable the CRLF translations controlled by <STRONG>nl</STRONG> and <STRONG>nonl</STRONG>. BSD
+ curses did turn off these translations; AT&T curses (at least as late
+ as SVr1) did not. We choose to do so, on the theory that a programmer
+ requesting raw input wants a clean (ideally 8-bit clean) connection
+ that the operating system will not alter.
+
+ Some historic curses implementations had, as an undocumented feature,
+ the ability to do the equivalent of <STRONG>clearok(...,</STRONG> <STRONG>1)</STRONG> by saying <STRONG>touch-</STRONG>
+ <STRONG>win(stdscr)</STRONG> or <STRONG>clear(stdscr)</STRONG>. This will not work under ncurses.
+
+ Earlier System V curses implementations specified that with <STRONG>scrollok</STRONG>
+ enabled, any window modification triggering a scroll also forced a
+ physical refresh. XSI Curses does not require this, and <STRONG>ncurses</STRONG> avoids
+ doing it to perform better vertical-motion optimization at <STRONG>wrefresh</STRONG>
+ time.
+ The XSI Curses standard does not mention that the cursor should be made
+ invisible as a side-effect of <STRONG>leaveok</STRONG>. SVr4 curses documentation does
+ this, but the code does not. Use <STRONG>curs_set</STRONG> to make the cursor invisi-
+ ble.
+</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
+ Note that <STRONG>clearok</STRONG>, <STRONG>leaveok</STRONG>, <STRONG>scrollok</STRONG>, <STRONG>idcok</STRONG>, <STRONG>nl</STRONG>, <STRONG>nonl</STRONG> and <STRONG>setscrreg</STRONG> may
+ be macros.
+ The <STRONG>immedok</STRONG> routine is useful for windows that are used as terminal em-
+ ulators.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>, <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>,
+ <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>.
+ <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
</PRE>
-<HR>
-<ADDRESS>
-Man(1) output converted with
-<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
-</ADDRESS>
+<div class="nav">
+<ul>
+<li><a href="#h2-NAME">NAME</a></li>
+<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
+<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
+<ul>
+<li><a href="#h3-clearok">clearok</a></li>
+<li><a href="#h3-idlok">idlok</a></li>
+<li><a href="#h3-idcok">idcok</a></li>
+<li><a href="#h3-immedok">immedok</a></li>
+<li><a href="#h3-leaveok">leaveok</a></li>
+<li><a href="#h3-setscrreg">setscrreg</a></li>
+<li><a href="#h3-scrollok">scrollok</a></li>
+<li><a href="#h3-nl_-nonl">nl, nonl</a></li>
+</ul>
+</li>
+<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
+<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-NOTES">NOTES</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
+</ul>
+</div>
</BODY>
</HTML>