3 ****************************************************************************
4 * Copyright 2021-2023,2024 Thomas E. Dickey *
5 * Copyright 2008-2015,2017 Free Software Foundation, Inc. *
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: *
15 * The above copyright notice and this permission notice shall be included *
16 * in all copies or substantial portions of the Software. *
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. *
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 *
30 ****************************************************************************
31 * @Id: curs_threads.3x,v 1.56 2024/03/16 15:35:01 tom Exp @
33 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
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.5 Library calls</TITLE>
39 <link rel="author" href="mailto:bug-ncurses@gnu.org">
43 <H1 class="no-header">curs_threads 3x 2024-03-16 ncurses 6.5 Library calls</H1>
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>
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
56 </PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
57 <STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
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>
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>
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>
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).
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.
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.
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.
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.
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.
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.
112 <STRONG>o</STRONG> global data used in the low-level <EM>terminfo</EM> or <EM>termcap</EM> interfaces
114 <STRONG>o</STRONG> terminal data associated with a call to <STRONG><A HREF="curs_terminfo.3x.html">set_curterm(3x)</A></STRONG>
116 Terminal data are initialized when screens are created.
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>
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>
122 Windows are associated with screens. Pads are not necessarily
123 associated with any particular screen.
125 Most <EM>curses</EM> applications operate on one or more windows within a
128 <STRONG>o</STRONG> reentrant data associated with "pure" functions that alter no
131 The following table lists the scope of each symbol in the <EM>ncurses</EM>
132 library when configured to support multi-threaded applications.
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
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>)
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)
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
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
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
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
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
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.
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.
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>.
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>
620 ncurses 6.5 2024-03-16 <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>
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>
628 <li><a href="#h3-Usage">Usage</a></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>