]> ncurses.scripts.mit.edu Git - ncurses.git/blob - doc/html/man/curs_threads.3x.html
ncurses 6.4 - patch 20231001
[ncurses.git] / doc / html / man / curs_threads.3x.html
1 <!--
2   * t
3   ****************************************************************************
4   * Copyright 2021-2022,2023 Thomas E. Dickey                                *
5   * Copyright 2008-2015,2017 Free Software Foundation, Inc.                  *
6   *                                                                          *
7   * Permission is hereby granted, free of charge, to any person obtaining a  *
8   * copy of this software and associated documentation files (the            *
9   * "Software"), to deal in the Software without restriction, including      *
10   * without limitation the rights to use, copy, modify, merge, publish,      *
11   * distribute, distribute with modifications, sublicense, and/or sell       *
12   * copies of the Software, and to permit persons to whom the Software is    *
13   * furnished to do so, subject to the following conditions:                 *
14   *                                                                          *
15   * The above copyright notice and this permission notice shall be included  *
16   * in all copies or substantial portions of the Software.                   *
17   *                                                                          *
18   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
19   * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
20   * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
21   * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
22   * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
23   * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
24   * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
25   *                                                                          *
26   * Except as contained in this notice, the name(s) of the above copyright   *
27   * holders shall not be used in advertising or otherwise to promote the     *
28   * sale, use or other dealings in this Software without prior written       *
29   * authorization.                                                           *
30   ****************************************************************************
31   * @Id: curs_threads.3x,v 1.46 2023/10/01 09:45:30 tom Exp @
32   * ***************************************************************************
33   * ***************************************************************************
34 -->
35 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
36 <HTML>
37 <HEAD>
38 <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
39 <meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
40 <TITLE>curs_threads 3x 2023-10-01 ncurses 6.4 Library calls</TITLE>
41 <link rel="author" href="mailto:bug-ncurses@gnu.org">
42
43 </HEAD>
44 <BODY>
45 <H1 class="no-header">curs_threads 3x 2023-10-01 ncurses 6.4 Library calls</H1>
46 <PRE>
47 <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>
48
49
50
51
52 </PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
53        <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>,
54        <STRONG>set_tabsize</STRONG>, <STRONG>use_screen</STRONG>, <STRONG>use_window</STRONG> - <EM>curses</EM> support for multi-threaded
55        applications
56
57
58 </PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
59        <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
60
61        <EM>/*</EM> <EM>data</EM> <EM>types</EM> <EM>*/</EM>
62        <STRONG>typedef</STRONG> <STRONG>int</STRONG> <STRONG>(*NCURSES_WINDOW_CB)(WINDOW</STRONG> <STRONG>*,</STRONG> <STRONG>void</STRONG> <STRONG>*);</STRONG>
63        <STRONG>typedef</STRONG> <STRONG>int</STRONG> <STRONG>(*NCURSES_SCREEN_CB)(SCREEN</STRONG> <STRONG>*,</STRONG> <STRONG>void</STRONG> <STRONG>*);</STRONG>
64
65        <STRONG>int</STRONG> <STRONG>get_escdelay(void);</STRONG>
66        <STRONG>int</STRONG> <STRONG>set_escdelay(int</STRONG> <EM>ms</EM><STRONG>);</STRONG>
67        <STRONG>int</STRONG> <STRONG>set_tabsize(int</STRONG> <EM>cols</EM><STRONG>);</STRONG>
68
69        <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>
70        <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>
71
72
73 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
74        The  <EM>ncurses</EM>  library  can  be  configured  to  support  multi-threaded
75        applications in a  rudimentary  way.   Such  configuration  produces  a
76        different set of libraries, named <EM>libncursest</EM>, for example, since doing
77        so alters <EM>ncurses</EM>'s application binary interface (ABI).
78
79        Instead of modifying the programming interface (API)  to  make  <EM>ncurses</EM>
80        functions  expect  an  additional  argument  specifying  a  thread, the
81        library adds a few functions, usable in any  configuration,  that  hide
82        the  <EM>mutexes</EM>  (mutual  exclusion  locks)  needed  to prevent concurrent
83        access to variables shared by multiple threads of execution.
84
85        <EM>ncurses</EM> threading support requires  the  use  of  functions  to  access
86        members  of  the  <EM>WINDOW</EM>  structure  (see <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>).  It further
87        makes functions of the common  global  variables  <STRONG>COLORS</STRONG>,  <STRONG>COLOR_PAIRS</STRONG>,
88        <STRONG>COLS</STRONG>,   <STRONG>ESCDELAY</STRONG>,   <STRONG>LINES</STRONG>,   <STRONG>TABSIZE</STRONG>,   <STRONG>curscr</STRONG>,  <STRONG>newscr</STRONG>,  and  <STRONG>ttytype</STRONG>,
89        maintaining them as as read-only values in the <EM>SCREEN</EM> structure.
90
91        Even this is not enough to make an  application  using  <EM>curses</EM>  thread-
92        safe.   We  would  expect  a multi-threaded application to have threads
93        updating separate windows (on the same device),  and  separate  screens
94        (on  different  devices).   Further,  applications  expect a few of the
95        global variables to be writable.  The functions described here  address
96        these special situations.
97
98        The  <STRONG>ESCDELAY</STRONG>  and  <STRONG>TABSIZE</STRONG>  global  variables  are  modified  by  some
99        applications.   To  modify  them  in   any   configuration,   use   the
100        <STRONG>set_escdelay</STRONG>  or <STRONG>set_tabsize</STRONG> functions.  Other global variables are not
101        modifiable.  <STRONG>get_escdelay</STRONG> retrieves <STRONG>ESCDELAY</STRONG>'s value.
102
103        The <STRONG>use_window</STRONG> and <STRONG>use_screen</STRONG> functions provide coarse-grained  mutexes
104        for  their  respective  <EM>WINDOW</EM> and <EM>SCREEN</EM> parameters; they call a user-
105        supplied function, pass it a <EM>data</EM> parameter, and return the value  from
106        the user-supplied function to the application.
107
108
109 </PRE><H3><a name="h3-Usage">Usage</a></H3><PRE>
110        All  <EM>ncurses</EM>  library  functions  assume that the locale is not altered
111        during operation.  In addition, they use data that is maintained within
112        a hierarchy of scopes.
113
114        <STRONG>o</STRONG>   global data used in the low-level <EM>terminfo</EM> or <EM>termcap</EM> interfaces
115
116        <STRONG>o</STRONG>   terminal data associated with a call to <STRONG><A HREF="curs_terminfo.3x.html">set_curterm(3x)</A></STRONG>
117
118            Terminal data are initialized when screens are created.
119
120        <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>
121
122        <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>
123
124            Windows  are  associated  with  screens.   Pads are not necessarily
125            associated with any particular screen.
126
127            Most <EM>curses</EM> applications operate on one or more  windows  within  a
128            single screen.
129
130        <STRONG>o</STRONG>   reentrant  data  associated  with  "pure"  functions  that alter no
131            shared variables
132
133        The following table lists the scope  of  each  symbol  in  the  <EM>ncurses</EM>
134        library when configured to support multi-threaded applications.
135
136             <STRONG>Symbol</STRONG>                  <STRONG>Scope</STRONG>
137             -------------------------------------------------------------
138             <STRONG>BC</STRONG>                      global
139             <STRONG>COLORS</STRONG>                  screen (read-only)
140             <STRONG>COLOR_PAIR</STRONG>              reentrant
141             <STRONG>COLOR_PAIRS</STRONG>             screen (read-only)
142             <STRONG>COLS</STRONG>                    screen (read-only)
143             <STRONG>ESCDELAY</STRONG>                screen (read-only; see <STRONG>set_escdelay</STRONG>)
144             <STRONG>LINES</STRONG>                   screen (read-only)
145             <STRONG>PAIR_NUMBER</STRONG>             reentrant
146             <STRONG>PC</STRONG>                      global
147             <STRONG>SP</STRONG>                      global
148             <STRONG>TABSIZE</STRONG>                 screen (read-only; see <STRONG>set_tabsize</STRONG>)
149             <STRONG>UP</STRONG>                      global
150             <STRONG>acs_map</STRONG>                 screen (read-only)
151             <STRONG>add_wch</STRONG>                 window (<STRONG>stdscr</STRONG>)
152             <STRONG>add_wchnstr</STRONG>             window (<STRONG>stdscr</STRONG>)
153             <STRONG>add_wchstr</STRONG>              window (<STRONG>stdscr</STRONG>)
154             <STRONG>addch</STRONG>                   window (<STRONG>stdscr</STRONG>)
155             <STRONG>addchnstr</STRONG>               window (<STRONG>stdscr</STRONG>)
156             <STRONG>addchstr</STRONG>                window (<STRONG>stdscr</STRONG>)
157             <STRONG>addnstr</STRONG>                 window (<STRONG>stdscr</STRONG>)
158             <STRONG>addnwstr</STRONG>                window (<STRONG>stdscr</STRONG>)
159             <STRONG>addstr</STRONG>                  window (<STRONG>stdscr</STRONG>)
160             <STRONG>addwstr</STRONG>                 window (<STRONG>stdscr</STRONG>)
161             <STRONG>assume_default_colors</STRONG>   screen
162             <STRONG>attr_get</STRONG>                window (<STRONG>stdscr</STRONG>)
163             <STRONG>attr_off</STRONG>                window (<STRONG>stdscr</STRONG>)
164             <STRONG>attr_on</STRONG>                 window (<STRONG>stdscr</STRONG>)
165             <STRONG>attr_set</STRONG>                window (<STRONG>stdscr</STRONG>)
166             <STRONG>attroff</STRONG>                 window (<STRONG>stdscr</STRONG>)
167             <STRONG>attron</STRONG>                  window (<STRONG>stdscr</STRONG>)
168             <STRONG>attrset</STRONG>                 window (<STRONG>stdscr</STRONG>)
169             <STRONG>baudrate</STRONG>                screen
170             <STRONG>beep</STRONG>                    screen
171             <STRONG>bkgd</STRONG>                    window (<STRONG>stdscr</STRONG>)
172             <STRONG>bkgdset</STRONG>                 window (<STRONG>stdscr</STRONG>)
173             <STRONG>bkgrnd</STRONG>                  window (<STRONG>stdscr</STRONG>)
174             <STRONG>bkgrndset</STRONG>               window (<STRONG>stdscr</STRONG>)
175             <STRONG>boolcodes</STRONG>               global (read-only)
176             <STRONG>boolfnames</STRONG>              global (read-only)
177             <STRONG>boolnames</STRONG>               global (read-only)
178             <STRONG>border</STRONG>                  window (<STRONG>stdscr</STRONG>)
179             <STRONG>border_set</STRONG>              window (<STRONG>stdscr</STRONG>)
180             <STRONG>box</STRONG>                     window (<STRONG>stdscr</STRONG>)
181             <STRONG>box_set</STRONG>                 window (<STRONG>stdscr</STRONG>)
182             <STRONG>can_change_color</STRONG>        terminal
183             <STRONG>cbreak</STRONG>                  screen
184
185             <STRONG>chgat</STRONG>                   window (<STRONG>stdscr</STRONG>)
186             <STRONG>clear</STRONG>                   window (<STRONG>stdscr</STRONG>)
187             <STRONG>clearok</STRONG>                 window
188             <STRONG>clrtobot</STRONG>                window (<STRONG>stdscr</STRONG>)
189             <STRONG>clrtoeol</STRONG>                window (<STRONG>stdscr</STRONG>)
190             <STRONG>color_content</STRONG>           screen
191             <STRONG>color_set</STRONG>               window (<STRONG>stdscr</STRONG>)
192             <STRONG>copywin</STRONG>                 window (locks source, target)
193             <STRONG>cur_term</STRONG>                terminal
194             <STRONG>curs_set</STRONG>                screen
195             <STRONG>curscr</STRONG>                  screen (read-only)
196             <STRONG>curses_version</STRONG>          global (read-only)
197             <STRONG>def_prog_mode</STRONG>           terminal
198             <STRONG>def_shell_mode</STRONG>          terminal
199             <STRONG>define_key</STRONG>              screen
200             <STRONG>del_curterm</STRONG>             screen
201             <STRONG>delay_output</STRONG>            screen
202             <STRONG>delch</STRONG>                   window (<STRONG>stdscr</STRONG>)
203             <STRONG>deleteln</STRONG>                window (<STRONG>stdscr</STRONG>)
204             <STRONG>delscreen</STRONG>               global (locks screen list, screen)
205             <STRONG>delwin</STRONG>                  global (locks window list)
206             <STRONG>derwin</STRONG>                  screen
207             <STRONG>doupdate</STRONG>                screen
208             <STRONG>dupwin</STRONG>                  screen (locks window)
209             <STRONG>echo</STRONG>                    screen
210             <STRONG>echo_wchar</STRONG>              window (<STRONG>stdscr</STRONG>)
211             <STRONG>echochar</STRONG>                window (<STRONG>stdscr</STRONG>)
212             <STRONG>endwin</STRONG>                  screen
213             <STRONG>erase</STRONG>                   window (<STRONG>stdscr</STRONG>)
214             <STRONG>erasechar</STRONG>               window (<STRONG>stdscr</STRONG>)
215             <STRONG>erasewchar</STRONG>              window (<STRONG>stdscr</STRONG>)
216             <STRONG>filter</STRONG>                  global
217             <STRONG>flash</STRONG>                   terminal
218             <STRONG>flushinp</STRONG>                screen
219             <STRONG>get_wch</STRONG>                 screen (input operation)
220             <STRONG>get_wstr</STRONG>                screen (input operation)
221             <STRONG>getattrs</STRONG>                window
222             <STRONG>getbegx</STRONG>                 window
223             <STRONG>getbegy</STRONG>                 window
224             <STRONG>getbkgd</STRONG>                 window
225             <STRONG>getbkgrnd</STRONG>               window
226             <STRONG>getcchar</STRONG>                reentrant
227             <STRONG>getch</STRONG>                   screen (input operation)
228             <STRONG>getcurx</STRONG>                 window
229             <STRONG>getcury</STRONG>                 window
230             <STRONG>getmaxx</STRONG>                 window
231             <STRONG>getmaxy</STRONG>                 window
232             <STRONG>getmouse</STRONG>                screen (input operation)
233             <STRONG>getn_wstr</STRONG>               screen (input operation)
234             <STRONG>getnstr</STRONG>                 screen (input operation)
235             <STRONG>getparx</STRONG>                 window
236             <STRONG>getpary</STRONG>                 window
237             <STRONG>getstr</STRONG>                  screen (input operation)
238             <STRONG>getwin</STRONG>                  screen (input operation)
239             <STRONG>halfdelay</STRONG>               screen
240             <STRONG>has_colors</STRONG>              terminal
241             <STRONG>has_ic</STRONG>                  terminal
242             <STRONG>has_il</STRONG>                  terminal
243             <STRONG>has_key</STRONG>                 screen
244             <STRONG>hline</STRONG>                   window (<STRONG>stdscr</STRONG>)
245             <STRONG>hline_set</STRONG>               window (<STRONG>stdscr</STRONG>)
246             <STRONG>idcok</STRONG>                   window
247             <STRONG>idlok</STRONG>                   window
248             <STRONG>immedok</STRONG>                 window
249             <STRONG>in_wch</STRONG>                  window (<STRONG>stdscr</STRONG>)
250             <STRONG>in_wchnstr</STRONG>              window (<STRONG>stdscr</STRONG>)
251
252             <STRONG>in_wchstr</STRONG>               window (<STRONG>stdscr</STRONG>)
253             <STRONG>inch</STRONG>                    window (<STRONG>stdscr</STRONG>)
254             <STRONG>inchnstr</STRONG>                window (<STRONG>stdscr</STRONG>)
255             <STRONG>inchstr</STRONG>                 window (<STRONG>stdscr</STRONG>)
256             <STRONG>init_color</STRONG>              screen
257             <STRONG>init_pair</STRONG>               screen
258             <STRONG>initscr</STRONG>                 global (locks screen list)
259             <STRONG>innstr</STRONG>                  window (<STRONG>stdscr</STRONG>)
260             <STRONG>innwstr</STRONG>                 window (<STRONG>stdscr</STRONG>)
261             <STRONG>ins_nwstr</STRONG>               window (<STRONG>stdscr</STRONG>)
262             <STRONG>ins_wch</STRONG>                 window (<STRONG>stdscr</STRONG>)
263             <STRONG>ins_wstr</STRONG>                window (<STRONG>stdscr</STRONG>)
264             <STRONG>insch</STRONG>                   window (<STRONG>stdscr</STRONG>)
265             <STRONG>insdelln</STRONG>                window (<STRONG>stdscr</STRONG>)
266             <STRONG>insertln</STRONG>                window (<STRONG>stdscr</STRONG>)
267             <STRONG>insnstr</STRONG>                 window (<STRONG>stdscr</STRONG>)
268             <STRONG>insstr</STRONG>                  window (<STRONG>stdscr</STRONG>)
269             <STRONG>instr</STRONG>                   window (<STRONG>stdscr</STRONG>)
270             <STRONG>intrflush</STRONG>               terminal
271             <STRONG>inwstr</STRONG>                  window (<STRONG>stdscr</STRONG>)
272             <STRONG>is_cleared</STRONG>              window
273             <STRONG>is_idcok</STRONG>                window
274             <STRONG>is_idlok</STRONG>                window
275             <STRONG>is_immedok</STRONG>              window
276             <STRONG>is_keypad</STRONG>               window
277             <STRONG>is_leaveok</STRONG>              window
278             <STRONG>is_linetouched</STRONG>          window
279             <STRONG>is_nodelay</STRONG>              window
280             <STRONG>is_notimeout</STRONG>            window
281             <STRONG>is_scrollok</STRONG>             window
282             <STRONG>is_syncok</STRONG>               window
283             <STRONG>is_term_resized</STRONG>         terminal
284             <STRONG>is_wintouched</STRONG>           window
285             <STRONG>isendwin</STRONG>                screen
286             <STRONG>key_defined</STRONG>             screen
287             <STRONG>key_name</STRONG>                global (static data)
288             <STRONG>keybound</STRONG>                screen
289             <STRONG>keyname</STRONG>                 global (static data)
290             <STRONG>keyok</STRONG>                   screen
291             <STRONG>keypad</STRONG>                  window
292             <STRONG>killchar</STRONG>                terminal
293             <STRONG>killwchar</STRONG>               terminal
294             <STRONG>leaveok</STRONG>                 window
295             <STRONG>longname</STRONG>                screen
296             <STRONG>mcprint</STRONG>                 terminal
297             <STRONG>meta</STRONG>                    screen
298             <STRONG>mouse_trafo</STRONG>             window (<STRONG>stdscr</STRONG>)
299             <STRONG>mouseinterval</STRONG>           screen
300             <STRONG>mousemask</STRONG>               screen
301             <STRONG>move</STRONG>                    window (<STRONG>stdscr</STRONG>)
302             <STRONG>mvadd_wch</STRONG>               window (<STRONG>stdscr</STRONG>)
303             <STRONG>mvadd_wchnstr</STRONG>           window (<STRONG>stdscr</STRONG>)
304             <STRONG>mvadd_wchstr</STRONG>            window (<STRONG>stdscr</STRONG>)
305             <STRONG>mvaddch</STRONG>                 window (<STRONG>stdscr</STRONG>)
306             <STRONG>mvaddchnstr</STRONG>             window (<STRONG>stdscr</STRONG>)
307             <STRONG>mvaddchstr</STRONG>              window (<STRONG>stdscr</STRONG>)
308             <STRONG>mvaddnstr</STRONG>               window (<STRONG>stdscr</STRONG>)
309             <STRONG>mvaddnwstr</STRONG>              window (<STRONG>stdscr</STRONG>)
310             <STRONG>mvaddstr</STRONG>                window (<STRONG>stdscr</STRONG>)
311             <STRONG>mvaddwstr</STRONG>               window (<STRONG>stdscr</STRONG>)
312             <STRONG>mvchgat</STRONG>                 window (<STRONG>stdscr</STRONG>)
313             <STRONG>mvcur</STRONG>                   screen
314             <STRONG>mvdelch</STRONG>                 window (<STRONG>stdscr</STRONG>)
315             <STRONG>mvderwin</STRONG>                window (<STRONG>stdscr</STRONG>)
316             <STRONG>mvget_wch</STRONG>               screen (input operation)
317             <STRONG>mvget_wstr</STRONG>              screen (input operation)
318
319             <STRONG>mvgetch</STRONG>                 screen (input operation)
320             <STRONG>mvgetn_wstr</STRONG>             screen (input operation)
321             <STRONG>mvgetnstr</STRONG>               screen (input operation)
322             <STRONG>mvgetstr</STRONG>                screen (input operation)
323             <STRONG>mvhline</STRONG>                 window (<STRONG>stdscr</STRONG>)
324             <STRONG>mvhline_set</STRONG>             window (<STRONG>stdscr</STRONG>)
325             <STRONG>mvin_wch</STRONG>                window (<STRONG>stdscr</STRONG>)
326             <STRONG>mvin_wchnstr</STRONG>            window (<STRONG>stdscr</STRONG>)
327             <STRONG>mvin_wchstr</STRONG>             window (<STRONG>stdscr</STRONG>)
328             <STRONG>mvinch</STRONG>                  window (<STRONG>stdscr</STRONG>)
329             <STRONG>mvinchnstr</STRONG>              window (<STRONG>stdscr</STRONG>)
330             <STRONG>mvinchstr</STRONG>               window (<STRONG>stdscr</STRONG>)
331             <STRONG>mvinnstr</STRONG>                window (<STRONG>stdscr</STRONG>)
332             <STRONG>mvinnwstr</STRONG>               window (<STRONG>stdscr</STRONG>)
333             <STRONG>mvins_nwstr</STRONG>             window (<STRONG>stdscr</STRONG>)
334             <STRONG>mvins_wch</STRONG>               window (<STRONG>stdscr</STRONG>)
335             <STRONG>mvins_wstr</STRONG>              window (<STRONG>stdscr</STRONG>)
336             <STRONG>mvinsch</STRONG>                 window (<STRONG>stdscr</STRONG>)
337             <STRONG>mvinsnstr</STRONG>               window (<STRONG>stdscr</STRONG>)
338             <STRONG>mvinsstr</STRONG>                window (<STRONG>stdscr</STRONG>)
339             <STRONG>mvinstr</STRONG>                 window (<STRONG>stdscr</STRONG>)
340             <STRONG>mvinwstr</STRONG>                window (<STRONG>stdscr</STRONG>)
341             <STRONG>mvprintw</STRONG>                window (<STRONG>stdscr</STRONG>)
342             <STRONG>mvscanw</STRONG>                 screen
343             <STRONG>mvvline</STRONG>                 window (<STRONG>stdscr</STRONG>)
344             <STRONG>mvvline_set</STRONG>             window (<STRONG>stdscr</STRONG>)
345             <STRONG>mvwadd_wch</STRONG>              window
346             <STRONG>mvwadd_wchnstr</STRONG>          window
347             <STRONG>mvwadd_wchstr</STRONG>           window
348             <STRONG>mvwaddch</STRONG>                window
349             <STRONG>mvwaddchnstr</STRONG>            window
350             <STRONG>mvwaddchstr</STRONG>             window
351             <STRONG>mvwaddnstr</STRONG>              window
352             <STRONG>mvwaddnwstr</STRONG>             window
353             <STRONG>mvwaddstr</STRONG>               window
354             <STRONG>mvwaddwstr</STRONG>              window
355             <STRONG>mvwchgat</STRONG>                window
356             <STRONG>mvwdelch</STRONG>                window
357             <STRONG>mvwget_wch</STRONG>              screen (input operation)
358             <STRONG>mvwget_wstr</STRONG>             screen (input operation)
359             <STRONG>mvwgetch</STRONG>                screen (input operation)
360             <STRONG>mvwgetn_wstr</STRONG>            screen (input operation)
361             <STRONG>mvwgetnstr</STRONG>              screen (input operation)
362             <STRONG>mvwgetstr</STRONG>               screen (input operation)
363             <STRONG>mvwhline</STRONG>                window
364             <STRONG>mvwhline_set</STRONG>            window
365             <STRONG>mvwin</STRONG>                   window
366             <STRONG>mvwin_wch</STRONG>               window
367             <STRONG>mvwin_wchnstr</STRONG>           window
368             <STRONG>mvwin_wchstr</STRONG>            window
369             <STRONG>mvwinch</STRONG>                 window
370             <STRONG>mvwinchnstr</STRONG>             window
371             <STRONG>mvwinchstr</STRONG>              window
372             <STRONG>mvwinnstr</STRONG>               window
373             <STRONG>mvwinnwstr</STRONG>              window
374             <STRONG>mvwins_nwstr</STRONG>            window
375             <STRONG>mvwins_wch</STRONG>              window
376             <STRONG>mvwins_wstr</STRONG>             window
377             <STRONG>mvwinsch</STRONG>                window
378             <STRONG>mvwinsnstr</STRONG>              window
379             <STRONG>mvwinsstr</STRONG>               window
380             <STRONG>mvwinstr</STRONG>                window
381             <STRONG>mvwinwstr</STRONG>               window
382             <STRONG>mvwprintw</STRONG>               window
383             <STRONG>mvwscanw</STRONG>                screen
384             <STRONG>mvwvline</STRONG>                window
385
386             <STRONG>mvwvline_set</STRONG>            window
387             <STRONG>napms</STRONG>                   reentrant
388             <STRONG>newpad</STRONG>                  global (locks window list)
389             <STRONG>newscr</STRONG>                  screen (read-only)
390             <STRONG>newterm</STRONG>                 global (locks screen list)
391             <STRONG>newwin</STRONG>                  global (locks window list)
392             <STRONG>nl</STRONG>                      screen
393             <STRONG>nocbreak</STRONG>                screen
394             <STRONG>nodelay</STRONG>                 window
395             <STRONG>noecho</STRONG>                  screen
396             <STRONG>nofilter</STRONG>                global
397             <STRONG>nonl</STRONG>                    screen
398             <STRONG>noqiflush</STRONG>               terminal
399             <STRONG>noraw</STRONG>                   screen
400             <STRONG>notimeout</STRONG>               window
401             <STRONG>numcodes</STRONG>                global (read-only)
402             <STRONG>numfnames</STRONG>               global (read-only)
403             <STRONG>numnames</STRONG>                global (read-only)
404             <STRONG>ospeed</STRONG>                  global
405             <STRONG>overlay</STRONG>                 window (locks source, target)
406             <STRONG>overwrite</STRONG>               window (locks source, target)
407             <STRONG>pair_content</STRONG>            screen
408             <STRONG>pecho_wchar</STRONG>             screen
409             <STRONG>pechochar</STRONG>               screen
410             <STRONG>pnoutrefresh</STRONG>            screen
411             <STRONG>prefresh</STRONG>                screen
412             <STRONG>printw</STRONG>                  window
413             <STRONG>putp</STRONG>                    global
414             <STRONG>putwin</STRONG>                  window
415             <STRONG>qiflush</STRONG>                 terminal
416             <STRONG>raw</STRONG>                     screen
417             <STRONG>redrawwin</STRONG>               window
418             <STRONG>refresh</STRONG>                 screen
419             <STRONG>reset_prog_mode</STRONG>         screen
420             <STRONG>reset_shell_mode</STRONG>        screen
421             <STRONG>resetty</STRONG>                 terminal
422             <STRONG>resize_term</STRONG>             screen (locks window list)
423             <STRONG>resizeterm</STRONG>              screen
424             <STRONG>restartterm</STRONG>             screen
425             <STRONG>ripoffline</STRONG>              global (static data)
426             <STRONG>savetty</STRONG>                 terminal
427             <STRONG>scanw</STRONG>                   screen
428             <STRONG>scr_dump</STRONG>                screen
429             <STRONG>scr_init</STRONG>                screen
430             <STRONG>scr_restore</STRONG>             screen
431             <STRONG>scr_set</STRONG>                 screen
432             <STRONG>scrl</STRONG>                    window (<STRONG>stdscr</STRONG>)
433             <STRONG>scroll</STRONG>                  window
434             <STRONG>scrollok</STRONG>                window
435             <STRONG>set_curterm</STRONG>             screen
436             <STRONG>set_escdelay</STRONG>            screen
437             <STRONG>set_tabsize</STRONG>             screen
438             <STRONG>set_term</STRONG>                global (locks screen list, screen)
439             <STRONG>setcchar</STRONG>                reentrant
440             <STRONG>setscrreg</STRONG>               window (<STRONG>stdscr</STRONG>)
441             <STRONG>setupterm</STRONG>               global
442             <STRONG>slk_attr</STRONG>                screen
443             <STRONG>slk_attr_off</STRONG>            screen
444             <STRONG>slk_attr_on</STRONG>             screen
445             <STRONG>slk_attr_set</STRONG>            screen
446             <STRONG>slk_attroff</STRONG>             screen
447             <STRONG>slk_attron</STRONG>              screen
448             <STRONG>slk_attrset</STRONG>             screen
449             <STRONG>slk_clear</STRONG>               screen
450             <STRONG>slk_color</STRONG>               screen
451             <STRONG>slk_init</STRONG>                screen
452
453             <STRONG>slk_label</STRONG>               screen
454             <STRONG>slk_noutrefresh</STRONG>         screen
455             <STRONG>slk_refresh</STRONG>             screen
456             <STRONG>slk_restore</STRONG>             screen
457             <STRONG>slk_set</STRONG>                 screen
458             <STRONG>slk_touch</STRONG>               screen
459             <STRONG>slk_wset</STRONG>                screen
460             <STRONG>standend</STRONG>                window
461             <STRONG>standout</STRONG>                window
462             <STRONG>start_color</STRONG>             screen
463             <STRONG>stdscr</STRONG>                  screen (read-only)
464             <STRONG>strcodes</STRONG>                global (read-only)
465             <STRONG>strfnames</STRONG>               global (read-only)
466             <STRONG>strnames</STRONG>                global (read-only)
467             <STRONG>subpad</STRONG>                  window
468             <STRONG>subwin</STRONG>                  window
469             <STRONG>syncok</STRONG>                  window
470             <STRONG>term_attrs</STRONG>              screen
471             <STRONG>termattrs</STRONG>               screen
472             <STRONG>termname</STRONG>                terminal
473             <STRONG>tgetent</STRONG>                 global
474             <STRONG>tgetflag</STRONG>                global
475             <STRONG>tgetnum</STRONG>                 global
476             <STRONG>tgetstr</STRONG>                 global
477             <STRONG>tgoto</STRONG>                   global
478             <STRONG>tigetflag</STRONG>               terminal
479             <STRONG>tigetnum</STRONG>                terminal
480             <STRONG>tigetstr</STRONG>                terminal
481             <STRONG>timeout</STRONG>                 window (<STRONG>stdscr</STRONG>)
482             <STRONG>touchline</STRONG>               window
483             <STRONG>touchwin</STRONG>                window
484             <STRONG>tparm</STRONG>                   global (static data)
485             <STRONG>tputs</STRONG>                   screen
486             <STRONG>trace</STRONG>                   global (static data)
487             <STRONG>ttytype</STRONG>                 screen (read-only)
488             <STRONG>typeahead</STRONG>               screen
489             <STRONG>unctrl</STRONG>                  screen
490             <STRONG>unget_wch</STRONG>               screen (input operation)
491             <STRONG>ungetch</STRONG>                 screen (input operation)
492             <STRONG>ungetmouse</STRONG>              screen (input operation)
493             <STRONG>untouchwin</STRONG>              window
494             <STRONG>use_default_colors</STRONG>      screen
495             <STRONG>use_env</STRONG>                 global (static data)
496             <STRONG>use_extended_names</STRONG>      global (static data)
497             <STRONG>use_legacy_coding</STRONG>       screen
498             <STRONG>use_screen</STRONG>              global (locks screen list, screen)
499             <STRONG>use_window</STRONG>              global (locks window list, window)
500             <STRONG>vid_attr</STRONG>                screen
501             <STRONG>vid_puts</STRONG>                screen
502             <STRONG>vidattr</STRONG>                 screen
503             <STRONG>vidputs</STRONG>                 screen
504             <STRONG>vline</STRONG>                   window (<STRONG>stdscr</STRONG>)
505             <STRONG>vline_set</STRONG>               window (<STRONG>stdscr</STRONG>)
506             <STRONG>vw_printw</STRONG>               window
507             <STRONG>vw_scanw</STRONG>                screen
508             <STRONG>vwprintw</STRONG>                window
509             <STRONG>vwscanw</STRONG>                 screen
510             <STRONG>wadd_wch</STRONG>                window
511             <STRONG>wadd_wchnstr</STRONG>            window
512             <STRONG>wadd_wchstr</STRONG>             window
513             <STRONG>waddch</STRONG>                  window
514             <STRONG>waddchnstr</STRONG>              window
515             <STRONG>waddchstr</STRONG>               window
516             <STRONG>waddnstr</STRONG>                window
517             <STRONG>waddnwstr</STRONG>               window
518             <STRONG>waddstr</STRONG>                 window
519
520             <STRONG>waddwstr</STRONG>                window
521             <STRONG>wattr_get</STRONG>               window
522             <STRONG>wattr_off</STRONG>               window
523             <STRONG>wattr_on</STRONG>                window
524             <STRONG>wattr_set</STRONG>               window
525             <STRONG>wattroff</STRONG>                window
526             <STRONG>wattron</STRONG>                 window
527             <STRONG>wattrset</STRONG>                window
528             <STRONG>wbkgd</STRONG>                   window
529             <STRONG>wbkgdset</STRONG>                window
530             <STRONG>wbkgrnd</STRONG>                 window
531             <STRONG>wbkgrndset</STRONG>              window
532             <STRONG>wborder</STRONG>                 window
533             <STRONG>wborder_set</STRONG>             window
534             <STRONG>wchgat</STRONG>                  window
535             <STRONG>wclear</STRONG>                  window
536             <STRONG>wclrtobot</STRONG>               window
537             <STRONG>wclrtoeol</STRONG>               window
538             <STRONG>wcolor_set</STRONG>              window
539             <STRONG>wcursyncup</STRONG>              screen (affects window plus parents)
540             <STRONG>wdelch</STRONG>                  window
541             <STRONG>wdeleteln</STRONG>               window
542             <STRONG>wecho_wchar</STRONG>             window
543             <STRONG>wechochar</STRONG>               window
544             <STRONG>wenclose</STRONG>                window
545             <STRONG>werase</STRONG>                  window
546             <STRONG>wget_wch</STRONG>                screen (input operation)
547             <STRONG>wget_wstr</STRONG>               screen (input operation)
548             <STRONG>wgetbkgrnd</STRONG>              window
549             <STRONG>wgetch</STRONG>                  screen (input operation)
550             <STRONG>wgetdelay</STRONG>               window
551             <STRONG>wgetn_wstr</STRONG>              screen (input operation)
552             <STRONG>wgetnstr</STRONG>                screen (input operation)
553             <STRONG>wgetparent</STRONG>              window
554             <STRONG>wgetscrreg</STRONG>              window
555             <STRONG>wgetstr</STRONG>                 screen (input operation)
556             <STRONG>whline</STRONG>                  window
557             <STRONG>whline_set</STRONG>              window
558             <STRONG>win_wch</STRONG>                 window
559             <STRONG>win_wchnstr</STRONG>             window
560             <STRONG>win_wchstr</STRONG>              window
561             <STRONG>winch</STRONG>                   window
562             <STRONG>winchnstr</STRONG>               window
563             <STRONG>winchstr</STRONG>                window
564             <STRONG>winnstr</STRONG>                 window
565             <STRONG>winnwstr</STRONG>                window
566             <STRONG>wins_nwstr</STRONG>              window
567             <STRONG>wins_wch</STRONG>                window
568             <STRONG>wins_wstr</STRONG>               window
569             <STRONG>winsch</STRONG>                  window
570             <STRONG>winsdelln</STRONG>               window
571             <STRONG>winsertln</STRONG>               window
572             <STRONG>winsnstr</STRONG>                window
573             <STRONG>winsstr</STRONG>                 window
574             <STRONG>winstr</STRONG>                  window
575             <STRONG>winwstr</STRONG>                 window
576             <STRONG>wmouse_trafo</STRONG>            window
577             <STRONG>wmove</STRONG>                   window
578             <STRONG>wnoutrefresh</STRONG>            screen
579             <STRONG>wprintw</STRONG>                 window
580             <STRONG>wredrawln</STRONG>               window
581             <STRONG>wrefresh</STRONG>                screen
582             <STRONG>wresize</STRONG>                 window (locks window list)
583             <STRONG>wscanw</STRONG>                  screen
584             <STRONG>wscrl</STRONG>                   window
585             <STRONG>wsetscrreg</STRONG>              window
586
587             <STRONG>wstandend</STRONG>               window
588             <STRONG>wstandout</STRONG>               window
589             <STRONG>wsyncdown</STRONG>               screen (affects window plus parents)
590             <STRONG>wsyncup</STRONG>                 screen (affects window plus parents)
591             <STRONG>wtimeout</STRONG>                window
592             <STRONG>wtouchln</STRONG>                window
593             <STRONG>wunctrl</STRONG>                 global (static data)
594             <STRONG>wvline</STRONG>                  window
595             <STRONG>wvline_set</STRONG>              window
596
597
598 </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
599        <STRONG>get_escdelay</STRONG>   returns   the   value  of  <STRONG>ESCDELAY</STRONG>.   <STRONG>set_escdelay</STRONG>  and
600        <STRONG>set_tabsize</STRONG> return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> upon successful  completion.
601        <STRONG>use_screen</STRONG>  and <STRONG>use_window</STRONG> return the <EM>int</EM> returned by the user-supplied
602        function they are called with.
603
604
605 </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
606        <EM>ncurses</EM> provides both a C function and a preprocessor  macro  for  each
607        function documented in this page.
608
609
610 </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
611        These  routines  are  specific  to <EM>ncurses</EM>.  They were not supported on
612        Version 7, BSD or System V implementations.  It is recommended that any
613        code   depending   on   <EM>ncurses</EM>   extensions   be   conditioned   using
614        <STRONG>NCURSES_VERSION</STRONG>.
615
616
617 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
618        <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>
619
620
621
622 ncurses 6.4                       2023-10-01                  <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>
623 </PRE>
624 <div class="nav">
625 <ul>
626 <li><a href="#h2-NAME">NAME</a></li>
627 <li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
628 <li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
629 <ul>
630 <li><a href="#h3-Usage">Usage</a></li>
631 </ul>
632 </li>
633 <li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
634 <li><a href="#h2-NOTES">NOTES</a></li>
635 <li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
636 <li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
637 </ul>
638 </div>
639 </BODY>
640 </HTML>