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.5 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.5 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><curses.h></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 620ncurses 6.5 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> 639