blob: 8681a8fe8305a1fd29d3e22234cebbc21aa11ca4 [file] [log] [blame]
<!--
* t
****************************************************************************
* Copyright 2021-2023,2024 Thomas E. Dickey *
* Copyright 2008-2015,2017 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_threads.3x,v 1.56 2024/03/16 15:35:01 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_threads 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
<H1 class="no-header">curs_threads 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
<EM>NCURSES</EM><STRONG>_</STRONG><EM>WINDOW</EM><STRONG>_</STRONG><EM>CB</EM>, <EM>NCURSES</EM><STRONG>_</STRONG><EM>SCREEN</EM><STRONG>_</STRONG><EM>CB</EM>, <STRONG>get_escdelay</STRONG>, <STRONG>set_escdelay</STRONG>,
<STRONG>set_tabsize</STRONG>, <STRONG>use_screen</STRONG>, <STRONG>use_window</STRONG> - <EM>curses</EM> support for multi-threaded
applications
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
<EM>/*</EM> <EM>data</EM> <EM>types</EM> <EM>*/</EM>
<STRONG>typedef</STRONG> <STRONG>int</STRONG> <STRONG>(*NCURSES_WINDOW_CB)(WINDOW</STRONG> <STRONG>*,</STRONG> <STRONG>void</STRONG> <STRONG>*);</STRONG>
<STRONG>typedef</STRONG> <STRONG>int</STRONG> <STRONG>(*NCURSES_SCREEN_CB)(SCREEN</STRONG> <STRONG>*,</STRONG> <STRONG>void</STRONG> <STRONG>*);</STRONG>
<STRONG>int</STRONG> <STRONG>get_escdelay(void);</STRONG>
<STRONG>int</STRONG> <STRONG>set_escdelay(int</STRONG> <EM>ms</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>set_tabsize(int</STRONG> <EM>cols</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>use_screen(SCREEN</STRONG> <STRONG>*</STRONG><EM>scr</EM><STRONG>,</STRONG> <STRONG>NCURSES_SCREEN_CB</STRONG> <EM>func</EM><STRONG>,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>data</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>use_window(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>NCURSES_WINDOW_CB</STRONG> <EM>func</EM><STRONG>,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>data</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
The <EM>ncurses</EM> library can be configured to support multi-threaded
applications in a rudimentary way. Such configuration produces a
different set of libraries, named <EM>libncursest</EM>, for example, since doing
so alters <EM>ncurses</EM>'s application binary interface (ABI).
Instead of modifying the programming interface (API) to make <EM>ncurses</EM>
functions expect an additional argument specifying a thread, the
library adds functions, usable in any configuration, that hide the
<EM>mutexes</EM> (mutual exclusion locks) needed to prevent concurrent access to
variables shared by multiple threads of execution.
<EM>ncurses</EM> threading support requires the use of functions to access
members of the <EM>WINDOW</EM> structure (see <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>). It further
makes functions of the common global variables <STRONG>COLORS</STRONG>, <STRONG>COLOR_PAIRS</STRONG>,
<STRONG>COLS</STRONG>, <STRONG>ESCDELAY</STRONG>, <STRONG>LINES</STRONG>, <STRONG>TABSIZE</STRONG>, <STRONG>curscr</STRONG>, <STRONG>newscr</STRONG>, and <STRONG>ttytype</STRONG>,
maintaining them as as read-only values in the <EM>SCREEN</EM> structure.
Even this is not enough to make an application using <EM>curses</EM> thread-
safe. We would expect a multi-threaded application to have threads
updating separate windows (on the same device), and separate screens
(on different devices). Further, applications expect a few of the
global variables to be writable. The functions described here address
these special situations.
The <STRONG>ESCDELAY</STRONG> and <STRONG>TABSIZE</STRONG> global variables are modified by some
applications. To modify them in any configuration, use the
<STRONG>set_escdelay</STRONG> or <STRONG>set_tabsize</STRONG> functions. Other global variables are not
modifiable. <STRONG>get_escdelay</STRONG> retrieves <STRONG>ESCDELAY</STRONG>'s value.
The <STRONG>use_window</STRONG> and <STRONG>use_screen</STRONG> functions provide coarse-grained mutexes
for their respective <EM>WINDOW</EM> and <EM>SCREEN</EM> parameters; they call a user-
supplied function, pass it a <EM>data</EM> parameter, and return the value from
the user-supplied function to the application.
</PRE><H3><a name="h3-Usage">Usage</a></H3><PRE>
All <EM>ncurses</EM> library functions assume that the locale is not altered
during operation. In addition, they use data that is maintained within
a hierarchy of scopes.
<STRONG>o</STRONG> global data used in the low-level <EM>terminfo</EM> or <EM>termcap</EM> interfaces
<STRONG>o</STRONG> terminal data associated with a call to <STRONG><A HREF="curs_terminfo.3x.html">set_curterm(3x)</A></STRONG>
Terminal data are initialized when screens are created.
<STRONG>o</STRONG> screen data associated with a call to <STRONG><A HREF="curs_initscr.3x.html">newterm(3x)</A></STRONG> or <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG>
<STRONG>o</STRONG> window data associated with a call to <STRONG><A HREF="curs_window.3x.html">newwin(3x)</A></STRONG> or <STRONG><A HREF="subwin.3x.html">subwin(3x)</A></STRONG>
Windows are associated with screens. Pads are not necessarily
associated with any particular screen.
Most <EM>curses</EM> applications operate on one or more windows within a
single screen.
<STRONG>o</STRONG> reentrant data associated with "pure" functions that alter no
shared variables
The following table lists the scope of each symbol in the <EM>ncurses</EM>
library when configured to support multi-threaded applications.
<STRONG>Symbol</STRONG> <STRONG>Scope</STRONG>
------------------------------------------------------------------------
<STRONG>BC</STRONG> global
<STRONG>COLORS</STRONG> screen (read-only)
<STRONG>COLOR_PAIR</STRONG> reentrant
<STRONG>COLOR_PAIRS</STRONG> screen (read-only)
<STRONG>COLS</STRONG> screen (read-only)
<STRONG>ESCDELAY</STRONG> screen (read-only; see <STRONG>set_escdelay</STRONG>)
<STRONG>LINES</STRONG> screen (read-only)
<STRONG>PAIR_NUMBER</STRONG> reentrant
<STRONG>PC</STRONG> global
<STRONG>SP</STRONG> global
<STRONG>TABSIZE</STRONG> screen (read-only; see <STRONG>set_tabsize</STRONG>)
<STRONG>UP</STRONG> global
<STRONG>acs_map</STRONG> screen (read-only)
<STRONG>add_wch</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>add_wchnstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>add_wchstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>addch</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>addchnstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>addchstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>addnstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>addnwstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>addstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>addwstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>assume_default_colors</STRONG> screen
<STRONG>attr_get</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>attr_off</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>attr_on</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>attr_set</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>attroff</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>attron</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>attrset</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>baudrate</STRONG> screen
<STRONG>beep</STRONG> screen
<STRONG>bkgd</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>bkgdset</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>bkgrnd</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>bkgrndset</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>boolcodes</STRONG> global (read-only)
<STRONG>boolfnames</STRONG> global (read-only)
<STRONG>boolnames</STRONG> global (read-only)
<STRONG>border</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>border_set</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>box</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>box_set</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>can_change_color</STRONG> terminal
<STRONG>cbreak</STRONG> screen
<STRONG>chgat</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>clear</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>clearok</STRONG> window
<STRONG>clrtobot</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>clrtoeol</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>color_content</STRONG> screen
<STRONG>color_set</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>copywin</STRONG> window (locks source, target)
<STRONG>cur_term</STRONG> terminal
<STRONG>curs_set</STRONG> screen
<STRONG>curscr</STRONG> screen (read-only)
<STRONG>curses_version</STRONG> global (read-only)
<STRONG>def_prog_mode</STRONG> terminal
<STRONG>def_shell_mode</STRONG> terminal
<STRONG>define_key</STRONG> screen
<STRONG>del_curterm</STRONG> screen
<STRONG>delay_output</STRONG> screen
<STRONG>delch</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>deleteln</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>delscreen</STRONG> global (locks screen list, screen)
<STRONG>delwin</STRONG> global (locks window list)
<STRONG>derwin</STRONG> screen
<STRONG>doupdate</STRONG> screen
<STRONG>dupwin</STRONG> screen (locks window)
<STRONG>echo</STRONG> screen
<STRONG>echo_wchar</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>echochar</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>endwin</STRONG> screen
<STRONG>erase</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>erasechar</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>erasewchar</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>filter</STRONG> global
<STRONG>flash</STRONG> terminal
<STRONG>flushinp</STRONG> screen
<STRONG>get_wch</STRONG> screen (input operation)
<STRONG>get_wstr</STRONG> screen (input operation)
<STRONG>getattrs</STRONG> window
<STRONG>getbegx</STRONG> window
<STRONG>getbegy</STRONG> window
<STRONG>getbkgd</STRONG> window
<STRONG>getbkgrnd</STRONG> window
<STRONG>getcchar</STRONG> reentrant
<STRONG>getch</STRONG> screen (input operation)
<STRONG>getcurx</STRONG> window
<STRONG>getcury</STRONG> window
<STRONG>getmaxx</STRONG> window
<STRONG>getmaxy</STRONG> window
<STRONG>getmouse</STRONG> screen (input operation)
<STRONG>getn_wstr</STRONG> screen (input operation)
<STRONG>getnstr</STRONG> screen (input operation)
<STRONG>getparx</STRONG> window
<STRONG>getpary</STRONG> window
<STRONG>getstr</STRONG> screen (input operation)
<STRONG>getwin</STRONG> screen (input operation)
<STRONG>halfdelay</STRONG> screen
<STRONG>has_colors</STRONG> terminal
<STRONG>has_ic</STRONG> terminal
<STRONG>has_il</STRONG> terminal
<STRONG>has_key</STRONG> screen
<STRONG>hline</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>hline_set</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>idcok</STRONG> window
<STRONG>idlok</STRONG> window
<STRONG>immedok</STRONG> window
<STRONG>in_wch</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>in_wchnstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>in_wchstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>inch</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>inchnstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>inchstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>init_color</STRONG> screen
<STRONG>init_pair</STRONG> screen
<STRONG>initscr</STRONG> global (locks screen list)
<STRONG>innstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>innwstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>ins_nwstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>ins_wch</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>ins_wstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>insch</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>insdelln</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>insertln</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>insnstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>insstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>instr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>intrflush</STRONG> terminal
<STRONG>inwstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>is_cleared</STRONG> window
<STRONG>is_idcok</STRONG> window
<STRONG>is_idlok</STRONG> window
<STRONG>is_immedok</STRONG> window
<STRONG>is_keypad</STRONG> window
<STRONG>is_leaveok</STRONG> window
<STRONG>is_linetouched</STRONG> window
<STRONG>is_nodelay</STRONG> window
<STRONG>is_notimeout</STRONG> window
<STRONG>is_scrollok</STRONG> window
<STRONG>is_syncok</STRONG> window
<STRONG>is_term_resized</STRONG> terminal
<STRONG>is_wintouched</STRONG> window
<STRONG>isendwin</STRONG> screen
<STRONG>key_defined</STRONG> screen
<STRONG>key_name</STRONG> global (static data)
<STRONG>keybound</STRONG> screen
<STRONG>keyname</STRONG> global (static data)
<STRONG>keyok</STRONG> screen
<STRONG>keypad</STRONG> window
<STRONG>killchar</STRONG> terminal
<STRONG>killwchar</STRONG> terminal
<STRONG>leaveok</STRONG> window
<STRONG>longname</STRONG> screen
<STRONG>mcprint</STRONG> terminal
<STRONG>meta</STRONG> screen
<STRONG>mouse_trafo</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mouseinterval</STRONG> screen
<STRONG>mousemask</STRONG> screen
<STRONG>move</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvadd_wch</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvadd_wchnstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvadd_wchstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvaddch</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvaddchnstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvaddchstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvaddnstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvaddnwstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvaddstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvaddwstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvchgat</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvcur</STRONG> screen
<STRONG>mvdelch</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvderwin</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvget_wch</STRONG> screen (input operation)
<STRONG>mvget_wstr</STRONG> screen (input operation)
<STRONG>mvgetch</STRONG> screen (input operation)
<STRONG>mvgetn_wstr</STRONG> screen (input operation)
<STRONG>mvgetnstr</STRONG> screen (input operation)
<STRONG>mvgetstr</STRONG> screen (input operation)
<STRONG>mvhline</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvhline_set</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvin_wch</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvin_wchnstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvin_wchstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvinch</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvinchnstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvinchstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvinnstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvinnwstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvins_nwstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvins_wch</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvins_wstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvinsch</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvinsnstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvinsstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvinstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvinwstr</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvprintw</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvscanw</STRONG> screen
<STRONG>mvvline</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvvline_set</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>mvwadd_wch</STRONG> window
<STRONG>mvwadd_wchnstr</STRONG> window
<STRONG>mvwadd_wchstr</STRONG> window
<STRONG>mvwaddch</STRONG> window
<STRONG>mvwaddchnstr</STRONG> window
<STRONG>mvwaddchstr</STRONG> window
<STRONG>mvwaddnstr</STRONG> window
<STRONG>mvwaddnwstr</STRONG> window
<STRONG>mvwaddstr</STRONG> window
<STRONG>mvwaddwstr</STRONG> window
<STRONG>mvwchgat</STRONG> window
<STRONG>mvwdelch</STRONG> window
<STRONG>mvwget_wch</STRONG> screen (input operation)
<STRONG>mvwget_wstr</STRONG> screen (input operation)
<STRONG>mvwgetch</STRONG> screen (input operation)
<STRONG>mvwgetn_wstr</STRONG> screen (input operation)
<STRONG>mvwgetnstr</STRONG> screen (input operation)
<STRONG>mvwgetstr</STRONG> screen (input operation)
<STRONG>mvwhline</STRONG> window
<STRONG>mvwhline_set</STRONG> window
<STRONG>mvwin</STRONG> window
<STRONG>mvwin_wch</STRONG> window
<STRONG>mvwin_wchnstr</STRONG> window
<STRONG>mvwin_wchstr</STRONG> window
<STRONG>mvwinch</STRONG> window
<STRONG>mvwinchnstr</STRONG> window
<STRONG>mvwinchstr</STRONG> window
<STRONG>mvwinnstr</STRONG> window
<STRONG>mvwinnwstr</STRONG> window
<STRONG>mvwins_nwstr</STRONG> window
<STRONG>mvwins_wch</STRONG> window
<STRONG>mvwins_wstr</STRONG> window
<STRONG>mvwinsch</STRONG> window
<STRONG>mvwinsnstr</STRONG> window
<STRONG>mvwinsstr</STRONG> window
<STRONG>mvwinstr</STRONG> window
<STRONG>mvwinwstr</STRONG> window
<STRONG>mvwprintw</STRONG> window
<STRONG>mvwscanw</STRONG> screen
<STRONG>mvwvline</STRONG> window
<STRONG>mvwvline_set</STRONG> window
<STRONG>napms</STRONG> reentrant
<STRONG>newpad</STRONG> global (locks window list)
<STRONG>newscr</STRONG> screen (read-only)
<STRONG>newterm</STRONG> global (locks screen list)
<STRONG>newwin</STRONG> global (locks window list)
<STRONG>nl</STRONG> screen
<STRONG>nocbreak</STRONG> screen
<STRONG>nodelay</STRONG> window
<STRONG>noecho</STRONG> screen
<STRONG>nofilter</STRONG> global
<STRONG>nonl</STRONG> screen
<STRONG>noqiflush</STRONG> terminal
<STRONG>noraw</STRONG> screen
<STRONG>notimeout</STRONG> window
<STRONG>numcodes</STRONG> global (read-only)
<STRONG>numfnames</STRONG> global (read-only)
<STRONG>numnames</STRONG> global (read-only)
<STRONG>ospeed</STRONG> global
<STRONG>overlay</STRONG> window (locks source, target)
<STRONG>overwrite</STRONG> window (locks source, target)
<STRONG>pair_content</STRONG> screen
<STRONG>pecho_wchar</STRONG> screen
<STRONG>pechochar</STRONG> screen
<STRONG>pnoutrefresh</STRONG> screen
<STRONG>prefresh</STRONG> screen
<STRONG>printw</STRONG> window
<STRONG>putp</STRONG> global
<STRONG>putwin</STRONG> window
<STRONG>qiflush</STRONG> terminal
<STRONG>raw</STRONG> screen
<STRONG>redrawwin</STRONG> window
<STRONG>refresh</STRONG> screen
<STRONG>reset_prog_mode</STRONG> screen
<STRONG>reset_shell_mode</STRONG> screen
<STRONG>resetty</STRONG> terminal
<STRONG>resize_term</STRONG> screen (locks window list)
<STRONG>resizeterm</STRONG> screen
<STRONG>restartterm</STRONG> screen
<STRONG>ripoffline</STRONG> global (static data)
<STRONG>savetty</STRONG> terminal
<STRONG>scanw</STRONG> screen
<STRONG>scr_dump</STRONG> screen
<STRONG>scr_init</STRONG> screen
<STRONG>scr_restore</STRONG> screen
<STRONG>scr_set</STRONG> screen
<STRONG>scrl</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>scroll</STRONG> window
<STRONG>scrollok</STRONG> window
<STRONG>set_curterm</STRONG> screen
<STRONG>set_escdelay</STRONG> screen
<STRONG>set_tabsize</STRONG> screen
<STRONG>set_term</STRONG> global (locks screen list, screen)
<STRONG>setcchar</STRONG> reentrant
<STRONG>setscrreg</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>setupterm</STRONG> global
<STRONG>slk_attr</STRONG> screen
<STRONG>slk_attr_off</STRONG> screen
<STRONG>slk_attr_on</STRONG> screen
<STRONG>slk_attr_set</STRONG> screen
<STRONG>slk_attroff</STRONG> screen
<STRONG>slk_attron</STRONG> screen
<STRONG>slk_attrset</STRONG> screen
<STRONG>slk_clear</STRONG> screen
<STRONG>slk_color</STRONG> screen
<STRONG>slk_init</STRONG> screen
<STRONG>slk_label</STRONG> screen
<STRONG>slk_noutrefresh</STRONG> screen
<STRONG>slk_refresh</STRONG> screen
<STRONG>slk_restore</STRONG> screen
<STRONG>slk_set</STRONG> screen
<STRONG>slk_touch</STRONG> screen
<STRONG>slk_wset</STRONG> screen
<STRONG>standend</STRONG> window
<STRONG>standout</STRONG> window
<STRONG>start_color</STRONG> screen
<STRONG>stdscr</STRONG> screen (read-only)
<STRONG>strcodes</STRONG> global (read-only)
<STRONG>strfnames</STRONG> global (read-only)
<STRONG>strnames</STRONG> global (read-only)
<STRONG>subpad</STRONG> window
<STRONG>subwin</STRONG> window
<STRONG>syncok</STRONG> window
<STRONG>term_attrs</STRONG> screen
<STRONG>termattrs</STRONG> screen
<STRONG>termname</STRONG> terminal
<STRONG>tgetent</STRONG> global
<STRONG>tgetflag</STRONG> global
<STRONG>tgetnum</STRONG> global
<STRONG>tgetstr</STRONG> global
<STRONG>tgoto</STRONG> global
<STRONG>tigetflag</STRONG> terminal
<STRONG>tigetnum</STRONG> terminal
<STRONG>tigetstr</STRONG> terminal
<STRONG>timeout</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>touchline</STRONG> window
<STRONG>touchwin</STRONG> window
<STRONG>tparm</STRONG> global (static data)
<STRONG>tputs</STRONG> screen
<STRONG>trace</STRONG> global (static data)
<STRONG>ttytype</STRONG> screen (read-only)
<STRONG>typeahead</STRONG> screen
<STRONG>unctrl</STRONG> screen
<STRONG>unget_wch</STRONG> screen (input operation)
<STRONG>ungetch</STRONG> screen (input operation)
<STRONG>ungetmouse</STRONG> screen (input operation)
<STRONG>untouchwin</STRONG> window
<STRONG>use_default_colors</STRONG> screen
<STRONG>use_env</STRONG> global (static data)
<STRONG>use_extended_names</STRONG> global (static data)
<STRONG>use_legacy_coding</STRONG> screen
<STRONG>use_screen</STRONG> global (locks screen list, screen)
<STRONG>use_window</STRONG> global (locks window list, window)
<STRONG>vid_attr</STRONG> screen
<STRONG>vid_puts</STRONG> screen
<STRONG>vidattr</STRONG> screen
<STRONG>vidputs</STRONG> screen
<STRONG>vline</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>vline_set</STRONG> window (<STRONG>stdscr</STRONG>)
<STRONG>vw_printw</STRONG> window
<STRONG>vw_scanw</STRONG> screen
<STRONG>vwprintw</STRONG> window
<STRONG>vwscanw</STRONG> screen
<STRONG>wadd_wch</STRONG> window
<STRONG>wadd_wchnstr</STRONG> window
<STRONG>wadd_wchstr</STRONG> window
<STRONG>waddch</STRONG> window
<STRONG>waddchnstr</STRONG> window
<STRONG>waddchstr</STRONG> window
<STRONG>waddnstr</STRONG> window
<STRONG>waddnwstr</STRONG> window
<STRONG>waddstr</STRONG> window
<STRONG>waddwstr</STRONG> window
<STRONG>wattr_get</STRONG> window
<STRONG>wattr_off</STRONG> window
<STRONG>wattr_on</STRONG> window
<STRONG>wattr_set</STRONG> window
<STRONG>wattroff</STRONG> window
<STRONG>wattron</STRONG> window
<STRONG>wattrset</STRONG> window
<STRONG>wbkgd</STRONG> window
<STRONG>wbkgdset</STRONG> window
<STRONG>wbkgrnd</STRONG> window
<STRONG>wbkgrndset</STRONG> window
<STRONG>wborder</STRONG> window
<STRONG>wborder_set</STRONG> window
<STRONG>wchgat</STRONG> window
<STRONG>wclear</STRONG> window
<STRONG>wclrtobot</STRONG> window
<STRONG>wclrtoeol</STRONG> window
<STRONG>wcolor_set</STRONG> window
<STRONG>wcursyncup</STRONG> screen (affects window plus parents)
<STRONG>wdelch</STRONG> window
<STRONG>wdeleteln</STRONG> window
<STRONG>wecho_wchar</STRONG> window
<STRONG>wechochar</STRONG> window
<STRONG>wenclose</STRONG> window
<STRONG>werase</STRONG> window
<STRONG>wget_wch</STRONG> screen (input operation)
<STRONG>wget_wstr</STRONG> screen (input operation)
<STRONG>wgetbkgrnd</STRONG> window
<STRONG>wgetch</STRONG> screen (input operation)
<STRONG>wgetdelay</STRONG> window
<STRONG>wgetn_wstr</STRONG> screen (input operation)
<STRONG>wgetnstr</STRONG> screen (input operation)
<STRONG>wgetparent</STRONG> window
<STRONG>wgetscrreg</STRONG> window
<STRONG>wgetstr</STRONG> screen (input operation)
<STRONG>whline</STRONG> window
<STRONG>whline_set</STRONG> window
<STRONG>win_wch</STRONG> window
<STRONG>win_wchnstr</STRONG> window
<STRONG>win_wchstr</STRONG> window
<STRONG>winch</STRONG> window
<STRONG>winchnstr</STRONG> window
<STRONG>winchstr</STRONG> window
<STRONG>winnstr</STRONG> window
<STRONG>winnwstr</STRONG> window
<STRONG>wins_nwstr</STRONG> window
<STRONG>wins_wch</STRONG> window
<STRONG>wins_wstr</STRONG> window
<STRONG>winsch</STRONG> window
<STRONG>winsdelln</STRONG> window
<STRONG>winsertln</STRONG> window
<STRONG>winsnstr</STRONG> window
<STRONG>winsstr</STRONG> window
<STRONG>winstr</STRONG> window
<STRONG>winwstr</STRONG> window
<STRONG>wmouse_trafo</STRONG> window
<STRONG>wmove</STRONG> window
<STRONG>wnoutrefresh</STRONG> screen
<STRONG>wprintw</STRONG> window
<STRONG>wredrawln</STRONG> window
<STRONG>wrefresh</STRONG> screen
<STRONG>wresize</STRONG> window (locks window list)
<STRONG>wscanw</STRONG> screen
<STRONG>wscrl</STRONG> window
<STRONG>wsetscrreg</STRONG> window
<STRONG>wstandend</STRONG> window
<STRONG>wstandout</STRONG> window
<STRONG>wsyncdown</STRONG> screen (affects window plus parents)
<STRONG>wsyncup</STRONG> screen (affects window plus parents)
<STRONG>wtimeout</STRONG> window
<STRONG>wtouchln</STRONG> window
<STRONG>wunctrl</STRONG> global (static data)
<STRONG>wvline</STRONG> window
<STRONG>wvline_set</STRONG> window
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
<STRONG>get_escdelay</STRONG> returns the value of <STRONG>ESCDELAY</STRONG>. <STRONG>set_escdelay</STRONG> and
<STRONG>set_tabsize</STRONG> return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> upon successful completion.
<STRONG>use_screen</STRONG> and <STRONG>use_window</STRONG> return the <EM>int</EM> returned by the user-supplied
function they are called with.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
<EM>ncurses</EM> provides both a C function and a preprocessor macro for each
function documented in this page.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
These routines are specific to <EM>ncurses</EM>. They were not supported on
Version 7, BSD or System V implementations. It is recommended that any
code depending on <EM>ncurses</EM> extensions be conditioned using
<STRONG>NCURSES_VERSION</STRONG>.
</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_opaque.3x.html">curs_opaque(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
ncurses 6.5 2024-03-16 <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>
</PRE>
<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-Usage">Usage</a></li>
</ul>
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
</HTML>