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