1<!-- 2 * t 3 **************************************************************************** 4 * Copyright 2018-2023,2024 Thomas E. Dickey * 5 * Copyright 1998-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: ncurses.3x,v 1.214 2024/04/27 17:55:43 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>ncurses 3x 2024-04-27 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">ncurses 3x 2024-04-27 ncurses 6.5 Library calls</H1> 44<PRE> 45<STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> Library calls <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> 46 47 48 49 50</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE> 51 <STRONG>ncurses</STRONG> - character-cell terminal interface with optimized output 52 53 54</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE> 55 <STRONG>#include</STRONG> <STRONG><curses.h></STRONG> 56 57 58</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE> 59 The "new curses" library offers the programmer a terminal-independent 60 means of reading keyboard and mouse input and updating character-cell 61 terminals with output optimized to minimize screen updates. <EM>ncurses</EM> 62 replaces the <EM>curses</EM> libraries from System V Release 4 Unix ("SVr4") and 63 4.4BSD Unix, the development of which ceased in the 1990s. This 64 document describes <EM>ncurses</EM> version 6.5 (patch 20240427). 65 66 <EM>ncurses</EM> permits control of the terminal screen's contents; abstraction 67 and subdivision thereof with <EM>windows</EM> and <EM>pads</EM>; the reading of terminal 68 input; control of terminal input and output options; environment query 69 routines; color manipulation; the definition and use of <EM>soft</EM> <EM>label</EM> 70 keys; <EM>terminfo</EM> capability access; a <EM>termcap</EM> compatibility interface; 71 and an abstraction of the system's API for manipulating the terminal 72 (such as <STRONG>termios(3)</STRONG>). 73 74 <EM>ncurses</EM> implements the standard interface described by X/Open Curses 75 Issue 7. In many behavioral details not standardized by X/Open, 76 <EM>ncurses</EM> emulates the <EM>curses</EM> library of SVr4 and provides numerous 77 useful extensions. 78 79 <EM>ncurses</EM> man pages employ several sections to clarify matters of usage 80 and interoperability with other <EM>curses</EM> implementations. 81 82 <STRONG>o</STRONG> "NOTES" describes issues and caveats of which any user of the 83 <EM>ncurses</EM> API should be aware, such as limitations on the size of an 84 underlying integral type or the availability of a preprocessor 85 macro exclusive of a function definition (which prevents its 86 address from being taken). This section also describes 87 implementation details that will be significant to the programmer 88 but which are not standardized. 89 90 <STRONG>o</STRONG> "EXTENSIONS" presents <EM>ncurses</EM> innovations beyond the X/Open Curses 91 standard and/or the SVr4 <EM>curses</EM> implementation. They are termed 92 <EM>extensions</EM> to indicate that they cannot be implemented solely by 93 using the library API, but require access to the library's internal 94 state. 95 96 <STRONG>o</STRONG> "PORTABILITY" discusses matters (beyond the exercise of extensions) 97 that should be considered when writing to a <EM>curses</EM> standard, or for 98 multiple implementations. 99 100 <STRONG>o</STRONG> "HISTORY" examines points of detail in <EM>ncurses</EM> and other <EM>curses</EM> 101 implementations over the decades of their development, particularly 102 where precedent or inertia have frustrated better design (and, in a 103 few cases, where such inertia has been overcome). 104 105 A <EM>curses</EM> application must be linked with the library; use the <STRONG>-lncurses</STRONG> 106 option to your compiler or linker. A debugging version of the library 107 may be available; if so, link with it using <STRONG>-lncurses_g</STRONG>. (Your system 108 integrator may have installed these libraries such that you can use the 109 options <STRONG>-lcurses</STRONG> and <STRONG>-lcurses_g</STRONG>, respectively.) The <EM>ncurses</EM><STRONG>_</STRONG><EM>g</EM> library 110 generates trace logs (in a file called <EM>trace</EM> in the current directory) 111 that describe <EM>ncurses</EM> actions. See section "ALTERNATE CONFIGURATIONS" 112 below. 113 114 115</PRE><H3><a name="h3-Application-Structure">Application Structure</a></H3><PRE> 116 A <EM>curses</EM> application uses information from the system locale; 117 <STRONG>setlocale(3)</STRONG> prepares it for <EM>curses</EM> library calls. 118 119 setlocale(LC_ALL, ""); 120 121 If the locale is not thus initialized, the library assumes that 122 characters are printable as in ISO 8859-1, to work with certain legacy 123 programs. You should initialize the locale; do not expect consistent 124 behavior from the library when the locale has not been set up. 125 126 <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG> or <STRONG><A HREF="curs_initscr.3x.html">newterm(3x)</A></STRONG> must be called to initialize <EM>curses</EM> before 127 use of any functions that deal with windows and screens. 128 129 To get character-at-a-time input without echoing--most interactive, 130 screen-oriented programs want this--use the following sequence. 131 132 initscr(); cbreak(); noecho(); 133 134 Most applications perform further setup as follows. 135 136 intrflush(stdscr, FALSE); 137 keypad(stdscr, TRUE); 138 139 A <EM>curses</EM> program then often enters an event loop of some sort. Call 140 <STRONG><A HREF="curs_initscr.3x.html">endwin(3x)</A></STRONG> before exiting. 141 142 143</PRE><H3><a name="h3-Overview">Overview</a></H3><PRE> 144 A <EM>curses</EM> library abstracts the terminal screen by representing all or 145 part of it as a <EM>WINDOW</EM> data structure. A <EM>window</EM> is a rectangular grid 146 of character cells, addressed by row and column coordinates (<EM>y</EM>, <EM>x</EM>), 147 with the upper left corner as (0, 0). A window called <STRONG>stdscr</STRONG>, the same 148 size as the terminal screen, is always available. Create others with 149 <STRONG><A HREF="curs_window.3x.html">newwin(3x)</A></STRONG>. 150 151 A <EM>curses</EM> library does not manage overlapping windows (but see below). 152 You can either use <STRONG>stdscr</STRONG> to manage one screen-filling window, or tile 153 the screen into non-overlapping windows and not use <STRONG>stdscr</STRONG> at all. 154 Mixing the two approaches will result in unpredictable and undesired 155 effects. 156 157 Functions permit manipulation of a window and the <EM>cursor</EM> identifying 158 the cell within it at which the next output operation will occur. 159 Among those, the most basic are <STRONG><A HREF="curs_move.3x.html">move(3x)</A></STRONG> and <STRONG><A HREF="curs_addch.3x.html">addch(3x)</A></STRONG>: these place the 160 cursor and write a character to <STRONG>stdscr</STRONG>, respectively. 161 162 Frequent changes to the terminal screen can cause unpleasant flicker or 163 inefficient use of the communication channel to the device, so the 164 library does not generally update it automatically. Therefore, after 165 using <EM>curses</EM> functions to accumulate a set of desired updates that make 166 sense to present together, call <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG> to tell the library to make 167 the user's screen look like <STRONG>stdscr</STRONG>. The library <EM>optimizes</EM> its output 168 by computing a minimal number of operations to mutate the screen from 169 its state at the previous refresh to the new one. Effective 170 optimization demands accurate information about the terminal device: 171 the management of such information is the province of the <STRONG><A HREF="curs_terminfo.3x.html">terminfo(3x)</A></STRONG> 172 API, a feature of every standard <EM>curses</EM> implementation. 173 174 Special windows called <EM>pads</EM> may also be manipulated. These are windows 175 that are not constrained to the size of the terminal screen and whose 176 contents need not be completely displayed. See <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>. 177 178 In addition to drawing characters on the screen, rendering attributes 179 and colors may be supported, causing the characters to show up in such 180 modes as underlined, in reverse video, or in color on terminals that 181 support such display enhancements. See <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>. 182 183 <EM>curses</EM> predefines constants for a small set of forms-drawing graphics 184 corresponding to the DEC Alternate Character Set (ACS), a feature of 185 VT100 and other terminals. See <STRONG><A HREF="curs_addch.3x.html">waddch(3x)</A></STRONG>. 186 187 <EM>curses</EM> is implemented using the operating system's terminal driver; 188 keystroke events are received not as scan codes but as byte sequences. 189 Graphical keycaps (alphanumeric and punctuation keys, and the space) 190 appear as-is. Everything else, including the tab, enter/return, 191 keypad, arrow, and function keys, appears as a control character or a 192 multibyte <EM>escape</EM> <EM>sequence.</EM> <EM>curses</EM> translates these into unique <EM>key</EM> 193 <EM>codes.</EM> See <STRONG><A HREF="curs_getch.3x.html">getch(3x)</A></STRONG>. 194 195 <EM>ncurses</EM> provides reimplementations of the SVr4 <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>, and 196 <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG> libraries to ease construction of user interfaces with <EM>curses</EM>. 197 198 199</PRE><H3><a name="h3-Initialization">Initialization</a></H3><PRE> 200 The selection of an appropriate value of <EM>TERM</EM> in the process 201 environment is essential to correct <EM>curses</EM> and <EM>terminfo</EM> library 202 operation. A well-configured system selects a correct <EM>TERM</EM> value 203 automatically; <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG> may assist with troubleshooting exotic 204 situations. 205 206 If you change the terminal type, export the <EM>TERM</EM> environment variable 207 in the shell, then run <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG> or the "<STRONG>tput</STRONG> <STRONG>init</STRONG>" command. See 208 subsection "Tabs and Initialization" of <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. 209 210 If the environment variables <EM>LINES</EM> and <EM>COLUMNS</EM> are set, or if the 211 <EM>curses</EM> program is executing in a graphical windowing environment, the 212 information obtained thence overrides that obtained by <EM>terminfo</EM>. An 213 <EM>ncurses</EM> extension supports resizable terminals; see <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>. 214 215 If the environment variable <EM>TERMINFO</EM> is defined, a <EM>curses</EM> program 216 checks first for a terminal type description in the location it 217 identifies. <EM>TERMINFO</EM> is useful for developing experimental type 218 descriptions or when write permission to <EM>/usr/share/terminfo</EM> is not 219 available. 220 221 See section "ENVIRONMENT" below. 222 223 224</PRE><H3><a name="h3-Naming-Conventions">Naming Conventions</a></H3><PRE> 225 <EM>curses</EM> offers many functions in variant forms using a regular set of 226 alternatives to the name of an elemental one. Those prefixed with "w" 227 require a <EM>WINDOW</EM> pointer argument; those with a "mv" prefix first 228 perform cursor movement using <STRONG><A HREF="curs_move.3x.html">wmove(3x)</A></STRONG>; a "mvw" prefix indicates both. 229 The "w" function is typically the elemental one; the removal of this 230 prefix usually indicates operation on <STRONG>stdscr</STRONG>. 231 232 Four functions prefixed with "p" require a pad argument. 233 234 In function synopses, <EM>ncurses</EM> man pages apply the following names to 235 parameters. 236 237 <EM>bf</EM> <EM>bool</EM> (<STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>) 238 <EM>c</EM> a <EM>char</EM> or <EM>int</EM> 239 <EM>ch</EM> a <EM>chtype</EM> 240 <EM>wc</EM> a <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM> or <EM>wint</EM><STRONG>_</STRONG><EM>t</EM> 241 <EM>wch</EM> a <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM> 242 <EM>win</EM> pointer to a <EM>WINDOW</EM> 243 <EM>pad</EM> pointer to a <EM>WINDOW</EM> that is a pad 244 245 246</PRE><H3><a name="h3-Wide-and-Non-wide-Character-Configurations">Wide and Non-wide Character Configurations</a></H3><PRE> 247 This manual page describes functions that appear in any configuration 248 of the library. There are two common configurations; see section 249 "ALTERNATE CONFIGURATIONS" below. 250 251 <EM>ncurses</EM> is the library in its "non-wide" configuration, handling only 252 eight-bit characters. It stores a character combined with 253 attributes in a <EM>chtype</EM> datum, which is often an alias of <EM>int</EM>. 254 255 Attributes alone (with no corresponding character) can be 256 stored in variables of <EM>chtype</EM> or <EM>attr</EM><STRONG>_</STRONG><EM>t</EM> type. In either 257 case, they are represented as an integral bit mask. 258 259 Each cell of a <EM>WINDOW</EM> is stored as a <EM>chtype</EM>. 260 261 <EM>ncursesw</EM> is the library in its "wide" configuration, which handles 262 character encodings requiring a larger data type than <EM>char</EM> (a 263 byte-sized type) can represent. It adds about one third more 264 calls using additional data types that can store such 265 <EM>multibyte</EM> characters. 266 267 <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM> corresponds to the non-wide configuration's <EM>chtype</EM>. 268 It always a structure type, because it stores more 269 data than fit into a standard scalar type. A 270 character code may not be representable as a <EM>char</EM>, 271 and moreover more than one character may occupy a 272 cell (as with accent marks and other diacritics). 273 Each character is of type <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM>; a complex 274 character contains one spacing character and zero or 275 more non-spacing characters (see below). Attributes 276 and color data are stored in separate fields of the 277 structure, not combined as in <EM>chtype</EM>. 278 279 Each cell of a <EM>WINDOW</EM> is stored as a <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>. 280 281 <STRONG><A HREF="curs_getcchar.3x.html">setcchar(3x)</A></STRONG> and <STRONG><A HREF="curs_getcchar.3x.html">getcchar(3x)</A></STRONG> store and retrieve <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM> 282 data. The wide library API of <EM>ncurses</EM> depends on two data 283 types standardized by ISO C95. 284 285 <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM> stores a wide character. Like <EM>chtype</EM>, it may be an 286 alias of <EM>int</EM>. Depending on the character encoding, 287 a wide character may be <EM>spacing</EM>, meaning that it 288 occupies a character cell by itself and typically 289 accompanies cursor advancement, or <EM>non-spacing</EM>, 290 meaning that it occupies the same cell as a spacing 291 character, is often regarded as a "modifier" of the 292 base glyph with which it combines, and typically 293 does not advance the cursor. 294 295 <EM>wint</EM><STRONG>_</STRONG><EM>t</EM> can store a <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM> or the constant <STRONG>WEOF</STRONG>, 296 analogously to the <EM>int</EM>-sized character manipulation 297 functions of ISO C and its constant <STRONG>EOF</STRONG>. 298 299 The wide library provides additional functions that 300 complement those in the non-wide library where the size of 301 the underlying character type is significant. A somewhat 302 regular naming convention relates many of the wide variants 303 to their non-wide counterparts; where a non-wide function 304 name contains "ch" or "str", prefix it with "_w" to obtain 305 the wide counterpart. For example, <STRONG>waddch</STRONG> becomes <STRONG>wadd_wch</STRONG>. 306 (Exceptions that add only "w" comprise <STRONG>addwstr</STRONG>, <STRONG>inwstr</STRONG>, and 307 their variants.) 308 309 This convention is inapplicable to some non-wide function 310 names, so other transformations are used for the wide 311 configuration: the window background management function 312 "bkgd" becomes "bkgrnd"; the window border-drawing and 313 -clearing functions are suffixed with "_set"; and character 314 attribute manipulation functions like "attron" become 315 "attr_on". 316 317 318</PRE><H3><a name="h3-Function-Name-Index">Function Name Index</a></H3><PRE> 319 The following table lists the <EM>curses</EM> functions provided in the non-wide 320 and wide APIs and the corresponding man pages that describe them. 321 Those flagged with "*" are <EM>ncurses</EM>-specific, neither described by 322 X/Open Curses nor present in SVr4. 323 324 <STRONG><EM>curses</EM></STRONG> Function Name Man Page 325 --------------------------------------------- 326 COLOR_PAIR <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG> 327 PAIR_NUMBER <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG> 328 add_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG> 329 add_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG> 330 add_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG> 331 addch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG> 332 addchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG> 333 addchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG> 334 addnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG> 335 addnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG> 336 addstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG> 337 addwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG> 338 alloc_pair <STRONG><A HREF="new_pair.3x.html">new_pair(3x)</A></STRONG>* 339 assume_default_colors <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>* 340 attr_get <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> 341 attr_off <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> 342 attr_on <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> 343 attr_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> 344 attroff <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> 345 attron <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> 346 attrset <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> 347 baudrate <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG> 348 beep <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG> 349 bkgd <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG> 350 bkgdset <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG> 351 bkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG> 352 bkgrndset <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG> 353 border <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG> 354 border_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG> 355 box <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG> 356 box_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG> 357 can_change_color <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG> 358 cbreak <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> 359 chgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> 360 clear <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG> 361 clearok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG> 362 clrtobot <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG> 363 clrtoeol <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG> 364 color_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG> 365 color_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> 366 copywin <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG> 367 curs_set <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG> 368 curses_trace <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>* 369 curses_version <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>* 370 def_prog_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG> 371 def_shell_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG> 372 define_key <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>* 373 del_curterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> 374 delay_output <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> 375 delch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG> 376 deleteln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG> 377 delscreen <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG> 378 delwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG> 379 derwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG> 380 doupdate <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG> 381 dupwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG> 382 echo <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> 383 384 echo_wchar <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG> 385 echochar <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG> 386 endwin <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG> 387 erase <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG> 388 erasechar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG> 389 erasewchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG> 390 exit_curses <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>* 391 exit_terminfo <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>* 392 extended_color_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>* 393 extended_pair_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>* 394 extended_slk_color <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>* 395 filter <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> 396 find_pair <STRONG><A HREF="new_pair.3x.html">new_pair(3x)</A></STRONG>* 397 flash <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG> 398 flushinp <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> 399 free_pair <STRONG><A HREF="new_pair.3x.html">new_pair(3x)</A></STRONG>* 400 get_escdelay <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>* 401 get_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG> 402 get_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG> 403 getattrs <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> 404 getbegx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>* 405 getbegy <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>* 406 getbegyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG> 407 getbkgd <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG> 408 getbkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG> 409 getcchar <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG> 410 getch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> 411 getcurx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>* 412 getcury <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>* 413 getmaxx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>* 414 getmaxy <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>* 415 getmaxyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG> 416 getmouse <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>* 417 getn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG> 418 getnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG> 419 getparx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>* 420 getpary <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>* 421 getparyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG> 422 getstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG> 423 getsyx <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG> 424 getwin <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> 425 getyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG> 426 halfdelay <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> 427 has_colors <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG> 428 has_ic <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG> 429 has_il <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG> 430 has_key <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>* 431 has_mouse <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>* 432 hline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG> 433 hline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG> 434 idcok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG> 435 idlok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG> 436 immedok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG> 437 in_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG> 438 in_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG> 439 in_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG> 440 inch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG> 441 inchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG> 442 inchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG> 443 init_color <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG> 444 init_extended_color <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>* 445 init_extended_pair <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>* 446 init_pair <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG> 447 initscr <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG> 448 innstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG> 449 450 innwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG> 451 ins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG> 452 ins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG> 453 ins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG> 454 insch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG> 455 insdelln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG> 456 insertln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG> 457 insnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG> 458 insstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG> 459 instr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG> 460 intrflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> 461 inwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG> 462 is_cbreak <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>* 463 is_cleared <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>* 464 is_echo <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>* 465 is_idcok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>* 466 is_idlok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>* 467 is_immedok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>* 468 is_keypad <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>* 469 is_leaveok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>* 470 is_linetouched <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG> 471 is_nl <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>* 472 is_nodelay <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>* 473 is_notimeout <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>* 474 is_pad <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>* 475 is_raw <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>* 476 is_scrollok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>* 477 is_subwin <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>* 478 is_syncok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>* 479 is_term_resized <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>* 480 is_wintouched <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG> 481 isendwin <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG> 482 key_defined <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>* 483 key_name <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> 484 keybound <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>* 485 keyname <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> 486 keyok <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>* 487 keypad <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> 488 killchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG> 489 killwchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG> 490 leaveok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG> 491 longname <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG> 492 mcprint <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>* 493 meta <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> 494 mouse_trafo <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>* 495 mouseinterval <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>* 496 mousemask <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>* 497 move <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG> 498 mvadd_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG> 499 mvadd_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG> 500 mvadd_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG> 501 mvaddch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG> 502 mvaddchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG> 503 mvaddchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG> 504 mvaddnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG> 505 mvaddnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG> 506 mvaddstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG> 507 mvaddwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG> 508 mvchgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> 509 mvcur <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> 510 mvdelch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG> 511 mvderwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG> 512 mvget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG> 513 mvget_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG> 514 mvgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> 515 516 mvgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG> 517 mvgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG> 518 mvgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG> 519 mvhline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG> 520 mvhline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG> 521 mvin_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG> 522 mvin_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG> 523 mvin_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG> 524 mvinch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG> 525 mvinchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG> 526 mvinchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG> 527 mvinnstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG> 528 mvinnwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG> 529 mvins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG> 530 mvins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG> 531 mvins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG> 532 mvinsch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG> 533 mvinsnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG> 534 mvinsstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG> 535 mvinstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG> 536 mvinwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG> 537 mvprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG> 538 mvscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG> 539 mvvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG> 540 mvvline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG> 541 mvwadd_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG> 542 mvwadd_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG> 543 mvwadd_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG> 544 mvwaddch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG> 545 mvwaddchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG> 546 mvwaddchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG> 547 mvwaddnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG> 548 mvwaddnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG> 549 mvwaddstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG> 550 mvwaddwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG> 551 mvwchgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> 552 mvwdelch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG> 553 mvwget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG> 554 mvwget_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG> 555 mvwgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> 556 mvwgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG> 557 mvwgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG> 558 mvwgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG> 559 mvwhline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG> 560 mvwhline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG> 561 mvwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG> 562 mvwin_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG> 563 mvwin_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG> 564 mvwin_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG> 565 mvwinch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG> 566 mvwinchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG> 567 mvwinchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG> 568 mvwinnstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG> 569 mvwinnwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG> 570 mvwins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG> 571 mvwins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG> 572 mvwins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG> 573 mvwinsch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG> 574 mvwinsnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG> 575 mvwinsstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG> 576 mvwinstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG> 577 mvwinwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG> 578 mvwprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG> 579 mvwscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG> 580 mvwvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG> 581 582 mvwvline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG> 583 napms <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG> 584 newpad <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG> 585 newterm <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG> 586 newwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG> 587 nl <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> 588 nocbreak <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> 589 nodelay <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> 590 noecho <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> 591 nofilter <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>* 592 nonl <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> 593 noqiflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> 594 noraw <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> 595 notimeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> 596 overlay <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG> 597 overwrite <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG> 598 pair_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG> 599 pecho_wchar <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG> 600 pechochar <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG> 601 pnoutrefresh <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG> 602 prefresh <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG> 603 printw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG> 604 putp <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> 605 putwin <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> 606 qiflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> 607 raw <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> 608 redrawwin <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG> 609 refresh <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG> 610 reset_color_pairs <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>* 611 reset_prog_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG> 612 reset_shell_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG> 613 resetty <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG> 614 resize_term <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>* 615 resizeterm <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>* 616 restartterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> 617 ripoffline <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG> 618 savetty <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG> 619 scanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG> 620 scr_dump <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG> 621 scr_init <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG> 622 scr_restore <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG> 623 scr_set <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG> 624 scrl <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG> 625 scroll <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG> 626 scrollok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG> 627 set_curterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> 628 set_escdelay <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>* 629 set_tabsize <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>* 630 set_term <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG> 631 setcchar <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG> 632 setscrreg <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG> 633 setsyx <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG> 634 setupterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> 635 slk_attr <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>* 636 slk_attr_off <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> 637 slk_attr_on <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> 638 slk_attr_set <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> 639 slk_attroff <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> 640 slk_attron <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> 641 slk_attrset <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> 642 slk_clear <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> 643 slk_color <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> 644 slk_init <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> 645 slk_label <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> 646 slk_noutrefresh <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> 647 648 slk_refresh <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> 649 slk_restore <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> 650 slk_set <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> 651 slk_touch <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> 652 slk_wset <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> 653 standend <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> 654 standout <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> 655 start_color <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG> 656 subpad <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG> 657 subwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG> 658 syncok <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG> 659 term_attrs <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG> 660 termattrs <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG> 661 termname <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG> 662 tgetent <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG> 663 tgetflag <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG> 664 tgetnum <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG> 665 tgetstr <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG> 666 tgoto <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG> 667 tigetflag <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> 668 tigetnum <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> 669 tigetstr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> 670 timeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> 671 tiparm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> 672 tiparm_s <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>* 673 tiscan_s <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>* 674 touchline <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG> 675 touchwin <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG> 676 tparm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> 677 tputs <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG> 678 tputs <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> 679 trace <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>* 680 typeahead <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> 681 unctrl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> 682 unget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG> 683 ungetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> 684 ungetmouse <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>* 685 untouchwin <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG> 686 use_default_colors <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>* 687 use_env <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> 688 use_extended_names <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>* 689 use_legacy_coding <STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG>* 690 use_screen <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>* 691 use_tioctl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>* 692 use_window <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>* 693 vid_attr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> 694 vid_puts <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> 695 vidattr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> 696 vidputs <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> 697 vline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG> 698 vline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG> 699 vw_printw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG> 700 vw_scanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG> 701 vwprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG> 702 vwscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG> 703 wadd_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG> 704 wadd_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG> 705 wadd_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG> 706 waddch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG> 707 waddchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG> 708 waddchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG> 709 waddnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG> 710 waddnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG> 711 waddstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG> 712 waddwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG> 713 714 wattr_get <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> 715 wattr_off <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> 716 wattr_on <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> 717 wattr_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> 718 wattroff <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> 719 wattron <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> 720 wattrset <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> 721 wbkgd <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG> 722 wbkgdset <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG> 723 wbkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG> 724 wbkgrndset <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG> 725 wborder <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG> 726 wborder_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG> 727 wchgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> 728 wclear <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG> 729 wclrtobot <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG> 730 wclrtoeol <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG> 731 wcolor_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> 732 wcursyncup <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG> 733 wdelch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG> 734 wdeleteln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG> 735 wecho_wchar <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG> 736 wechochar <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG> 737 wenclose <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>* 738 werase <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG> 739 wget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG> 740 wget_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG> 741 wgetbkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG> 742 wgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> 743 wgetdelay <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>* 744 wgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG> 745 wgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG> 746 wgetparent <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>* 747 wgetscrreg <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>* 748 wgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG> 749 whline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG> 750 whline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG> 751 win_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG> 752 win_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG> 753 win_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG> 754 winch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG> 755 winchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG> 756 winchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG> 757 winnstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG> 758 winnwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG> 759 wins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG> 760 wins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG> 761 wins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG> 762 winsch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG> 763 winsdelln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG> 764 winsertln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG> 765 winsnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG> 766 winsstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG> 767 winstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG> 768 winwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG> 769 wmouse_trafo <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>* 770 wmove <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG> 771 wnoutrefresh <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG> 772 wprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG> 773 wredrawln <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG> 774 wrefresh <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG> 775 wresize <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>* 776 wscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG> 777 wscrl <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG> 778 wsetscrreg <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG> 779 780 wstandend <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> 781 wstandout <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> 782 wsyncdown <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG> 783 wsyncup <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG> 784 wtimeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> 785 wtouchln <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG> 786 wunctrl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> 787 wvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG> 788 wvline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG> 789 790 <EM>ncurses</EM>'s <EM>screen-pointer</EM> <EM>extension</EM> adds additional functions 791 corresponding to many of the above, each with an "_sp" suffix; see 792 <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>. 793 794 The availability of some extensions is configurable when <EM>ncurses</EM> is 795 compiled; see sections "ALTERNATE CONFIGURATIONS" and "EXTENSIONS" 796 below. 797 798 799</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE> 800 Unless otherwise noted, functions that return an integer return <STRONG>OK</STRONG> on 801 success and <STRONG>ERR</STRONG> on failure. Functions that return pointers return <STRONG>NULL</STRONG> 802 on failure. Typically, <EM>ncurses</EM> treats a null pointer passed as a 803 function parameter as a failure. Functions prefixed with "mv" first 804 perform cursor movement and fail if the position (<EM>y</EM>, <EM>x</EM>) is outside the 805 window boundaries. 806 807 808</PRE><H2><a name="h2-ENVIRONMENT">ENVIRONMENT</a></H2><PRE> 809 The following symbols from the process environment customize the 810 runtime behavior of <EM>ncurses</EM> applications. The library may be 811 configured to disregard the variables <EM>TERMINFO</EM>, <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM>, 812 <EM>TERMPATH</EM>, and <EM>HOME</EM>, if the user is the superuser (root), or the 813 application uses <STRONG>setuid(2)</STRONG> or <STRONG>setgid(2)</STRONG>. 814 815 816</PRE><H3><a name="h3-BAUDRATE"><EM>BAUDRATE</EM></a></H3><PRE> 817 The debugging library checks this variable when the application has 818 redirected output to a file. Its integral value is used for the baud 819 rate. If that value is absent or invalid, <EM>ncurses</EM> uses 9600. This 820 feature allows testers to construct repeatable test cases that take 821 into account optimization decisions that depend on baud rate. 822 823 824</PRE><H3><a name="h3-CC-_command-character_"><EM>CC</EM> (command character)</a></H3><PRE> 825 When set, the <STRONG>command_character</STRONG> (<STRONG>cmdch</STRONG>) capability value of loaded 826 <EM>terminfo</EM> entries changes to the value of this variable. Very few <EM>term-</EM> 827 <EM>info</EM> entries provide this feature. 828 829 Because this name is also used in development environments to represent 830 the C compiler's name, <EM>ncurses</EM> ignores its value if it is not one 831 character in length. 832 833 834</PRE><H3><a name="h3-COLUMNS"><EM>COLUMNS</EM></a></H3><PRE> 835 This variable specifies the width of the screen in characters. 836 Applications running in a windowing environment usually are able to 837 obtain the width of the window in which they are executing. If <EM>COLUMNS</EM> 838 is not defined and the terminal's screen size is not available from the 839 terminal driver, <EM>ncurses</EM> uses the size specified by the <STRONG>columns</STRONG> (<STRONG>cols</STRONG>) 840 capability of the terminal type's entry in the <EM>terminfo</EM> database, if 841 any. 842 843 It is important that your application use the correct screen size. 844 Automatic detection thereof is not always possible because an 845 application may be running on a host that does not honor NAWS 846 (Negotiations About Window Size) or as a different user ID than the 847 owner of the terminal device file. Setting <EM>COLUMNS</EM> and/or <EM>LINES</EM> 848 overrides the library's use of the screen size obtained from the 849 operating system. 850 851 The <EM>COLUMNS</EM> and <EM>LINES</EM> variables may be specified independently. This 852 property is useful to circumvent misfeatures of legacy terminal type 853 descriptions; <STRONG>xterm(1)</STRONG> descriptions specifying 65 lines were once 854 notorious. For best results, avoid specifying <STRONG>cols</STRONG> and <STRONG>lines</STRONG> 855 capability codes in <EM>terminfo</EM> descriptions of terminal emulators. 856 857 <STRONG><A HREF="curs_util.3x.html">use_env(3x)</A></STRONG> can disable use of the process environment in determining 858 the screen size. <STRONG><A HREF="curs_util.3x.html">use_tioctl(3x)</A></STRONG> can update <EM>COLUMNS</EM> and <EM>LINES</EM> to match 859 the screen size obtained from system calls or the terminal database. 860 861 862</PRE><H3><a name="h3-ESCDELAY"><EM>ESCDELAY</EM></a></H3><PRE> 863 For <EM>curses</EM> to distinguish the ESC character resulting from a user's 864 press of the "Escape" key on the input device from one beginning an 865 <EM>escape</EM> <EM>sequence</EM> (as commonly produced by function keys), it waits after 866 receiving the escape character to see if further characters are 867 available on the input stream within a short interval. A global 868 variable <STRONG>ESCDELAY</STRONG> stores this interval in milliseconds. The default 869 value of 1000 (one second) is adequate for most uses. This environment 870 variable overrides it. 871 872 The most common instance where you may wish to change this value is to 873 work with a remote host over a slow communication channel. If the host 874 running a <EM>curses</EM> application does not receive the characters of an 875 escape sequence in a timely manner, the library can interpret them as 876 multiple key stroke events. 877 878 <STRONG>xterm(1)</STRONG> mouse events are a form of escape sequence; therefore, if your 879 application makes heavy use of multiple-clicking, you may wish to 880 lengthen the default value because the delay applies to the composite 881 multi-click event as well as the individual clicks. 882 883 Portable applications should not rely upon the presence of <STRONG>ESCDELAY</STRONG> in 884 either form, but setting the environment variable rather than the 885 global variable does not create problems when compiling an application. 886 887 If <STRONG><A HREF="curs_inopts.3x.html">keypad(3x)</A></STRONG> is disabled for the <EM>curses</EM> window receiving input, a 888 program must disambiguate escape sequences itself. 889 890 891</PRE><H3><a name="h3-HOME"><EM>HOME</EM></a></H3><PRE> 892 <EM>ncurses</EM> may read and write auxiliary terminal descriptions in <EM>.termcap</EM> 893 and <EM>.terminfo</EM> files in the user's home directory. 894 895 896</PRE><H3><a name="h3-LINES"><EM>LINES</EM></a></H3><PRE> 897 This counterpart to <EM>COLUMNS</EM> specifies the height of the screen in 898 characters. The corresponding <EM>terminfo</EM> capability and code is <STRONG>lines</STRONG>. 899 See the description of the <EM>COLUMNS</EM> variable above. 900 901 902</PRE><H3><a name="h3-MOUSE_BUTTONS_123"><EM>MOUSE_BUTTONS_123</EM></a></H3><PRE> 903 (OS/2 EMX port only) OS/2 numbers a three-button mouse inconsistently 904 with other platforms, such that 1 is the left button, 2 the right, and 905 3 the middle. This variable customizes the mouse button numbering. 906 Its value must be three digits 1-3 in any order. By default, <EM>ncurses</EM> 907 assumes a numbering of "132". 908 909 910</PRE><H3><a name="h3-NCURSES_ASSUMED_COLORS"><EM>NCURSES_ASSUMED_COLORS</EM></a></H3><PRE> 911 If set, this variable overrides the <EM>ncurses</EM> library's compiled-in 912 assumption that the terminal's default colors are white on black; see 913 <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>. Set the foreground and background color values 914 with this environment variable by assigning it two integer values 915 separated by a comma, indicating foregound and background color 916 numbers, respectively. 917 918 For example, to tell <EM>ncurses</EM> not to assume anything about the colors, 919 use a value of "-1,-1". To make the default color scheme green on 920 black, use "2,0". <EM>ncurses</EM> accepts integral values from -1 up to the 921 value of the <EM>terminfo</EM> <STRONG>max_colors</STRONG> (<STRONG>colors</STRONG>) capability. 922 923 924</PRE><H3><a name="h3-NCURSES_CONSOLE2"><EM>NCURSES_CONSOLE2</EM></a></H3><PRE> 925 (MinGW port only) The <EM>Console2</EM> program defectively handles the 926 Microsoft Console API call <EM>CreateConsoleScreenBuffer</EM>. Applications 927 that use it will hang. However, it is possible to simulate the action 928 of this call by mapping coordinates, explicitly saving and restoring 929 the original screen contents. Setting the environment variable <EM>NCGDB</EM> 930 has the same effect. 931 932 933</PRE><H3><a name="h3-NCURSES_GPM_TERMS"><EM>NCURSES_GPM_TERMS</EM></a></H3><PRE> 934 (Linux only) When <EM>ncurses</EM> is configured to use the GPM interface, this 935 variable may list one or more terminal names against which the <EM>TERM</EM> 936 variable (see below) is matched. An empty value disables the GPM 937 interface, using <EM>ncurses</EM>'s built-in support for <STRONG>xterm(1)</STRONG> mouse 938 protocols instead. If the variable is absent, <EM>ncurses</EM> attempts to open 939 GPM if <EM>TERM</EM> contains "linux". 940 941 942</PRE><H3><a name="h3-NCURSES_NO_HARD_TABS"><EM>NCURSES_NO_HARD_TABS</EM></a></H3><PRE> 943 <EM>ncurses</EM> may use tab characters in cursor movement optimization. In 944 some cases, your terminal driver may not handle them properly. Set 945 this environment variable to any value to disable the feature. You can 946 also adjust your <STRONG>stty(1)</STRONG> settings to avoid the problem. 947 948 949</PRE><H3><a name="h3-NCURSES_NO_MAGIC_COOKIE"><EM>NCURSES_NO_MAGIC_COOKIE</EM></a></H3><PRE> 950 Many terminals store video attributes as a property of a character 951 cell, as <EM>curses</EM> does. Historically, some recorded changes in video 952 attributes as data that logically <EM>occupies</EM> character cells on the 953 display, switching attributes on or off, similarly to tags in a markup 954 language; these are termed "magic cookies", and must be subsequently 955 overprinted. If the <EM>terminfo</EM> entry for your terminal type does not 956 adequately describe its handling of magic cookies, set this variable to 957 any value to instruct <EM>ncurses</EM> to disable attributes entirely. 958 959 960</PRE><H3><a name="h3-NCURSES_NO_PADDING"><EM>NCURSES_NO_PADDING</EM></a></H3><PRE> 961 Most terminal type descriptions in the <EM>terminfo</EM> database detail 962 hardware devices. Many people use <EM>curses</EM>-based applications in 963 terminal emulator programs that run in a windowing environment. These 964 programs can duplicate all of the important features of a hardware 965 terminal, but often lack their limitations. Chief among these absent 966 drawbacks is the problem of data flow management; that is, limiting the 967 speed of communication to what the hardware could handle. Unless a 968 hardware terminal is interfaced into a terminal concentrator (which 969 does flow control), an application must manage flow control itself to 970 prevent overruns and data loss. 971 972 A solution that comes at no hardware cost is for an application to 973 pause after directing a terminal to execute an operation that it 974 performs slowly, such as clearing the display. Many terminal type 975 descriptions, including that for the VT100, embed delay specifications 976 in capabilities. You may wish to use these terminal descriptions 977 without paying the performance penalty. Set <EM>NCURSES</EM><STRONG>_</STRONG><EM>NO</EM><STRONG>_</STRONG><EM>PADDING</EM> to any 978 value to disable all but mandatory padding. Mandatory padding is used 979 by such terminal capabilities as <STRONG>flash_screen</STRONG> (<STRONG>flash</STRONG>). 980 981 982</PRE><H3><a name="h3-NCURSES_NO_SETBUF"><EM>NCURSES_NO_SETBUF</EM></a></H3><PRE> 983 (Obsolete) Prior to internal changes developed in <EM>ncurses</EM> 5.9 (patches 984 20120825 through 20130126), the library used <STRONG>setbuf(3)</STRONG> to enable fully 985 buffered output when initializing the terminal. This was done, as in 986 SVr4 <EM>curses</EM>, to increase performance. For testing purposes, both of 987 <EM>ncurses</EM> and of certain applications, this feature was made optional. 988 Setting this variable disabled output buffering, leaving the output 989 stream in the original (usually line-buffered) mode. 990 991 Nowadays, <EM>ncurses</EM> performs its own buffering and does not require this 992 workaround; it does not modify the buffering of the standard output 993 stream. This approach makes signal handling, as for interrupts, more 994 robust. A drawback is that certain unconventional programs mixed 995 <STRONG>stdio(3)</STRONG> calls with <EM>ncurses</EM> calls and (usually) got the behavior they 996 expected. This is no longer the case; <EM>ncurses</EM> does not write to the 997 standard output file descriptor through a <EM>stdio</EM>-buffered stream. 998 999 As a special case, low-level API calls such as <STRONG><A HREF="curs_terminfo.3x.html">putp(3x)</A></STRONG> still use the 1000 standard output stream. High-level <EM>curses</EM> calls such as <STRONG><A HREF="curs_printw.3x.html">printw(3x)</A></STRONG> do 1001 not. 1002 1003 1004</PRE><H3><a name="h3-NCURSES_NO_UTF8_ACS"><EM>NCURSES_NO_UTF8_ACS</EM></a></H3><PRE> 1005 At initialization, <EM>ncurses</EM> inspects the <EM>TERM</EM> environment variable for 1006 special cases where VT100 forms-drawing characters (and the 1007 corresponding alternate character set <EM>terminfo</EM> capabilities) are known 1008 to be unsupported by terminal types that otherwise claim VT100 1009 compatibility. Specifically, when running in a UTF-8 locale, the Linux 1010 virtual console device and the GNU <STRONG>screen(1)</STRONG> program ignore them. Set 1011 this variable to a nonzero value to instruct <EM>ncurses</EM> that the 1012 terminal's ACS support is broken; the library then outputs Unicode code 1013 points that correspond to the forms-drawing characters. Set it to zero 1014 (or a non-integer) to disable the special check for terminal type names 1015 matching "linux" or "screen", directing <EM>ncurses</EM> to assume that the ACS 1016 feature works if the terminal type description advertises it. 1017 1018 As an alternative to use of this variable, <EM>ncurses</EM> checks for an 1019 extended <EM>terminfo</EM> numeric capability <STRONG>U8</STRONG> that can be compiled using "<STRONG>tic</STRONG> 1020 <STRONG>-x</STRONG>". Examples follow. 1021 1022 # linux console, if patched to provide working 1023 # VT100 shift-in/shift-out, with corresponding font. 1024 linux-vt100|linux console with VT100 line-graphics, 1025 U8#0, use=linux, 1026 1027 # uxterm with vt100Graphics resource set to false 1028 xterm-utf8|xterm relying on UTF-8 line-graphics, 1029 U8#1, use=xterm, 1030 1031 The two-character name "U8" was chosen to permit its use via <EM>ncurses</EM>'s 1032 <EM>termcap</EM> interface. 1033 1034 1035</PRE><H3><a name="h3-NCURSES_TRACE"><EM>NCURSES_TRACE</EM></a></H3><PRE> 1036 At initialization, <EM>ncurses</EM> (in its debugging configuration) checks for 1037 this variable's presence. If defined with an integral value, the 1038 library calls <STRONG><A HREF="curs_trace.3x.html">curses_trace(3x)</A></STRONG> with that value as the argument. 1039 1040 1041</PRE><H3><a name="h3-TERM"><EM>TERM</EM></a></H3><PRE> 1042 The <EM>TERM</EM> variable denotes the terminal type. Each is distinct, though 1043 many are similar. It is commonly set by terminal emulators to help 1044 applications find a workable terminal description. Some choose a 1045 popular approximation such as "ansi", "vt100", or "xterm" rather than 1046 an exact fit to their capabilities. Not infrequently, an application 1047 will have problems with that approach; for example, a key stroke may 1048 not operate correctly, or produce no effect but seeming garbage 1049 characters on the screen. 1050 1051 Setting <EM>TERM</EM> has no effect on hardware operation; it affects the way 1052 applications communicate with the terminal. Likewise, as a general 1053 rule (<STRONG>xterm(1)</STRONG> being a rare exception), terminal emulators that allow 1054 you to specify <EM>TERM</EM> as a parameter or configuration value do not change 1055 their behavior to match that setting. 1056 1057 1058</PRE><H3><a name="h3-TERMCAP"><EM>TERMCAP</EM></a></H3><PRE> 1059 If <EM>ncurses</EM> is configured with <EM>termcap</EM> support, it checks for a terminal 1060 type description in <EM>termcap</EM> format if one in <EM>terminfo</EM> format is not 1061 available. Setting this variable directs <EM>ncurses</EM> to ignore the usual 1062 <EM>termcap</EM> database location, <EM>/etc/termcap</EM>; see <EM>TERMPATH</EM> below. <EM>TERMCAP</EM> 1063 should contain either a terminal description (with newlines stripped 1064 out), or a file name indicating where the information required by the 1065 <EM>TERM</EM> environment variable is stored. 1066 1067 1068</PRE><H3><a name="h3-TERMINFO"><EM>TERMINFO</EM></a></H3><PRE> 1069 <EM>ncurses</EM> can be configured to read terminal type description databases 1070 in various locations using different formats. This variable overrides 1071 the default location. 1072 1073 <STRONG>o</STRONG> Descriptions in <EM>terminfo</EM> format are normally stored in a directory 1074 tree using subdirectories named by the common first letters of the 1075 terminal types named therein. This is the scheme used in System V. 1076 1077 <STRONG>o</STRONG> If <EM>ncurses</EM> is configured to use hashed databases, then <EM>TERMINFO</EM> may 1078 name its location, such as <EM>/usr/share/terminfo.db</EM>, rather than 1079 <EM>/usr/share/terminfo/</EM>. 1080 1081 The hashed database uses less disk space and is a little faster than 1082 the directory tree. However, some applications assume the existence of 1083 the directory tree, and read it directly rather than using the <EM>terminfo</EM> 1084 API. 1085 1086 <STRONG>o</STRONG> If <EM>ncurses</EM> is configured with <EM>termcap</EM> support, this variable may 1087 contain the location of a <EM>termcap</EM> file. 1088 1089 <STRONG>o</STRONG> If the value of <EM>TERMINFO</EM> begins with "hex:" or "b64:", <EM>ncurses</EM> uses 1090 the remainder of the value as a compiled <EM>terminfo</EM> description. You 1091 might produce the base64 format using <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>. 1092 1093 TERMINFO=$(infocmp -0 -Q2 -q) 1094 export TERMINFO 1095 1096 The compiled description is used only if it corresponds to the 1097 terminal type identified by <EM>TERM</EM>. 1098 1099 Setting <EM>TERMINFO</EM> is the simplest, but not the only, way to direct 1100 <EM>ncurses</EM> to a terminal database. The search path is as follows. 1101 1102 <STRONG>o</STRONG> the last terminal database to which the running <EM>ncurses</EM> application 1103 wrote, if any 1104 1105 <STRONG>o</STRONG> the location specified by the <EM>TERMINFO</EM> environment variable 1106 1107 <STRONG>o</STRONG> <EM>$HOME/.terminfo</EM> 1108 1109 <STRONG>o</STRONG> locations listed in the <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM> environment variable 1110 1111 <STRONG>o</STRONG> location(s) configured and compiled into <EM>ncurses</EM> 1112 1113 <STRONG>o</STRONG> <EM>/usr/share/terminfo</EM> 1114 1115 1116</PRE><H3><a name="h3-TERMINFO_DIRS"><EM>TERMINFO_DIRS</EM></a></H3><PRE> 1117 This variable specifies a list of locations, akin to <EM>PATH</EM>, in which 1118 <EM>ncurses</EM> searches for the terminal type descriptions described by 1119 <EM>TERMINFO</EM> above. The list items are separated by colons on Unix and 1120 semicolons on OS/2 EMX. System V <EM>terminfo</EM> lacks a corresponding 1121 feature; <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM> is an <EM>ncurses</EM> extension. 1122 1123 1124</PRE><H3><a name="h3-TERMPATH"><EM>TERMPATH</EM></a></H3><PRE> 1125 If <EM>TERMCAP</EM> does not hold a terminal type description or file name, then 1126 <EM>ncurses</EM> checks the contents of <EM>TERMPATH</EM>, a list of locations, akin to 1127 <EM>PATH</EM>, in which it searches for <EM>termcap</EM> terminal type descriptions. The 1128 list items are separated by colons on Unix and semicolons on OS/2 EMX. 1129 1130 If both <EM>TERMCAP</EM> and <EM>TERMPATH</EM> are unset or invalid, <EM>ncurses</EM> searches for 1131 the files <EM>/etc/termcap</EM>, <EM>/usr/share/misc/termcap</EM>, and <EM>$HOME/.termcap</EM>, in 1132 that order. 1133 1134 1135</PRE><H2><a name="h2-ALTERNATE-CONFIGURATIONS">ALTERNATE CONFIGURATIONS</a></H2><PRE> 1136 Many different <EM>ncurses</EM> configurations are possible, determined by the 1137 options given to the <EM>configure</EM> script when building the library. Run 1138 the script with the <STRONG>--help</STRONG> option to peruse them all. A few are of 1139 particular significance to the application developer employing <EM>ncurses</EM>. 1140 1141 <STRONG>--disable-overwrite</STRONG> 1142 The standard include for <EM>ncurses</EM> is as noted in <STRONG>SYNOPSIS</STRONG>: 1143 1144 <STRONG>#include</STRONG> <STRONG><curses.h></STRONG> 1145 1146 This option is used to avoid filename conflicts when <EM>ncurses</EM> is 1147 not the main implementation of curses of the computer. If <EM>ncurses</EM> 1148 is installed disabling overwrite, it puts its headers in a 1149 subdirectory, e.g., 1150 1151 <STRONG>#include</STRONG> <STRONG><ncurses/curses.h></STRONG> 1152 1153 It also omits a symbolic link which would allow you to use 1154 <STRONG>-lcurses</STRONG> to build executables. 1155 1156 <STRONG>--enable-widec</STRONG> 1157 The configure script renames the library and (if the 1158 <STRONG>--disable-overwrite</STRONG> option is used) puts the header files in a 1159 different subdirectory. All of the library names have a "w" 1160 appended to them, i.e., instead of 1161 1162 <STRONG>-lncurses</STRONG> 1163 1164 you link with 1165 1166 <STRONG>-lncursesw</STRONG> 1167 1168 You must also enable the wide-character features in the header 1169 file when compiling for the wide-character library to use the 1170 extended (wide-character) functions. The symbol which enables 1171 these features has changed since X/Open Curses, Issue 4: 1172 1173 <STRONG>o</STRONG> Originally, the wide-character feature required the symbol 1174 <STRONG>_XOPEN_SOURCE_EXTENDED</STRONG> but that was only valid for XPG4 1175 (1996). 1176 1177 <STRONG>o</STRONG> Later, that was deemed conflicting with <STRONG>_XOPEN_SOURCE</STRONG> defined 1178 to 500. 1179 1180 <STRONG>o</STRONG> As of mid-2018, none of the features in this implementation 1181 require a <STRONG>_XOPEN_SOURCE</STRONG> feature greater than 600. However, 1182 X/Open Curses, Issue 7 (2009) recommends defining it to 700. 1183 1184 <STRONG>o</STRONG> Alternatively, you can enable the feature by defining 1185 <STRONG>NCURSES_WIDECHAR</STRONG> with the caveat that some other header file 1186 than <STRONG>curses.h</STRONG> may require a specific value for <STRONG>_XOPEN_SOURCE</STRONG> 1187 (or a system-specific symbol). 1188 1189 The <EM>curses.h</EM> header file installed for the wide-character library 1190 is designed to be compatible with the non-wide library's header. 1191 Only the size of the <EM>WINDOW</EM> structure differs; few applications 1192 require more than pointers to <EM>WINDOW</EM>s. 1193 1194 If the headers are installed allowing overwrite, the wide- 1195 character library's headers should be installed last, to allow 1196 applications to be built using either library from the same set of 1197 headers. 1198 1199 <STRONG>--with-pthread</STRONG> 1200 The configure script renames the library. All of the library 1201 names have a "t" appended to them (before any "w" added by 1202 <STRONG>--enable-widec</STRONG>). 1203 1204 The global variables such as <STRONG>LINES</STRONG> are replaced by macros to allow 1205 read-only access. At the same time, setter-functions are provided 1206 to set these values. Some applications (very few) may require 1207 changes to work with this convention. 1208 1209 <STRONG>--with-shared</STRONG> 1210 <STRONG>--with-normal</STRONG> 1211 <STRONG>--with-debug</STRONG> 1212 <STRONG>--with-profile</STRONG> 1213 The shared and normal (static) library names differ by their 1214 suffixes, e.g., <STRONG>libncurses.so</STRONG> and <STRONG>libncurses.a</STRONG>. The debug and 1215 profiling libraries add a "_g" and a "_p" to the root names 1216 respectively, e.g., <STRONG>libncurses_g.a</STRONG> and <STRONG>libncurses_p.a</STRONG>. 1217 1218 <STRONG>--with-termlib</STRONG> 1219 Low-level functions which do not depend upon whether the library 1220 supports wide-characters, are provided in the tinfo library. 1221 1222 By doing this, it is possible to share the tinfo library between 1223 wide/normal configurations as well as reduce the size of the 1224 library when only low-level functions are needed. 1225 1226 Those functions are described in these pages: 1227 1228 <STRONG>o</STRONG> <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG> - miscellaneous <EM>curses</EM> extensions 1229 1230 <STRONG>o</STRONG> <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> - <EM>curses</EM> input options 1231 1232 <STRONG>o</STRONG> <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG> - low-level <EM>curses</EM> routines 1233 1234 <STRONG>o</STRONG> <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG> - <EM>curses</EM> environment query routines 1235 1236 <STRONG>o</STRONG> <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG> - <EM>curses</EM> emulation of <EM>termcap</EM> 1237 1238 <STRONG>o</STRONG> <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> - <EM>curses</EM> interface to <EM>terminfo</EM> database 1239 1240 <STRONG>o</STRONG> <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> - miscellaneous <EM>curses</EM> utility routines 1241 1242 <STRONG>--with-trace</STRONG> 1243 The <STRONG>trace</STRONG> function normally resides in the debug library, but it 1244 is sometimes useful to configure this in the shared library. 1245 Configure scripts should check for the function's existence rather 1246 than assuming it is always in the debug library. 1247 1248 1249</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE> 1250 <EM>/usr/share/tabset</EM> 1251 tab stop initialization database 1252 1253 <EM>/usr/share/terminfo</EM> 1254 compiled terminal capability database 1255 1256 1257</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE> 1258 X/Open Curses permits most functions it specifies to be made available 1259 as macros as well. <EM>ncurses</EM> does so 1260 1261 <STRONG>o</STRONG> for functions that return values via their parameters, 1262 1263 <STRONG>o</STRONG> to support obsolete features, 1264 1265 <STRONG>o</STRONG> to reuse functions (for example, those that move the cursor before 1266 another operation), and 1267 1268 <STRONG>o</STRONG> a few special cases. 1269 1270 If the standard output file descriptor of an <EM>ncurses</EM> program is 1271 redirected to something that is not a terminal device, the library 1272 writes screen updates to the standard error file descriptor. This was 1273 an undocumented feature of SVr3 <EM>curses</EM>. 1274 1275 See subsection "Header Files" below regarding symbols exposed by 1276 inclusion of <EM>curses.h</EM>. 1277 1278 1279</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE> 1280 <EM>ncurses</EM> enables an application to capture mouse events on certain 1281 terminals, including <STRONG>xterm(1)</STRONG>; see <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>. 1282 1283 <EM>ncurses</EM> provides a means of responding to window resizing events, as 1284 when running in a GUI terminal emulator application such as <EM>xterm</EM>; see 1285 <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> and <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>. 1286 1287 <EM>ncurses</EM> allows an application to query the terminal for the presence of 1288 a wide variety of special keys; see <STRONG><A HREF="curs_getch.3x.html">has_key(3x)</A></STRONG>. 1289 1290 <EM>ncurses</EM> extends the fixed set of function key capabilities specified by 1291 X/Open Curses by allowing the application programmer to define 1292 additional key events at runtime; see <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>, <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>, 1293 <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>, and <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>. 1294 1295 <EM>ncurses</EM> can exploit the capabilities of terminals implementing 1296 ISO 6429/ECMA-48 SGR 39 and SGR 49 sequences, which allow an 1297 application to reset the terminal to its original foreground and 1298 background colors. From a user's perspective, the application is able 1299 to draw colored text on a background whose color is set independently, 1300 providing better control over color contrasts. See <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>. 1301 1302 An <EM>ncurses</EM> application can eschew knowledge of <EM>WINDOW</EM> structure 1303 internals, instead using accessor functions such as <STRONG><A HREF="curs_opaque.3x.html">is_scrollok(3x)</A></STRONG>. 1304 1305 <EM>ncurses</EM> enables an application to direct application output to a 1306 printer attached to the terminal device; see <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>. 1307 1308 <EM>ncurses</EM> offers <STRONG><A HREF="curs_slk.3x.html">slk_attr(3x)</A></STRONG> as a counterpart of <STRONG><A HREF="curs_attr.3x.html">attr_get(3x)</A></STRONG> for soft- 1309 label key lines, and <STRONG><A HREF="curs_slk.3x.html">extended_slk_color(3x)</A></STRONG> as a form of <STRONG><A HREF="curs_slk.3x.html">slk_color(3x)</A></STRONG> 1310 that can gather color information from them when many colors are 1311 supported. 1312 1313 Some extensions are available only if <EM>ncurses</EM> permits modification of 1314 <STRONG><A HREF="unctrl.3x.html">unctrl(3x)</A></STRONG>'s behavior; see <STRONG><A HREF="legacy_coding.3x.html">use_legacy_coding(3x)</A></STRONG>. <EM>ncurses</EM> is compiled 1315 to support them; section "ALTERNATE CONFIGURATIONS" describes how. 1316 1317 <STRONG>o</STRONG> Rudimentary support for multi-threaded applications may be 1318 available; see <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>. 1319 1320 <STRONG>o</STRONG> Functions that ease the management of multiple screens can be 1321 exposed; see <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>. 1322 1323 <STRONG>o</STRONG> To aid applications to debug their memory usage, <EM>ncurses</EM> optionally 1324 offers functions to more aggressively free memory it dynamically 1325 allocates itself; see <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>. 1326 1327 <STRONG>o</STRONG> The library facilitates auditing and troubleshooting of its 1328 behavior; see <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>. 1329 1330 <STRONG>o</STRONG> The compiler option <STRONG>-DUSE_GETCAP</STRONG> causes the library to fall back to 1331 reading <EM>/etc/termcap</EM> if the terminal setup code cannot find a <EM>term-</EM> 1332 <EM>info</EM> entry corresponding to <EM>TERM</EM>. Use of this feature is not 1333 recommended, as it essentially includes an entire <EM>termcap</EM> compiler 1334 in the <EM>ncurses</EM> startup code, at a cost in memory usage and 1335 application launch latency. 1336 1337 <EM>PDCurses</EM> and NetBSD <EM>curses</EM> incorporate some <EM>ncurses</EM> extensions. 1338 Individual man pages indicate where this is the case. 1339 1340 1341</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE> 1342 X/Open Curses defines two levels of conformance, "base" and "enhanced". 1343 The latter includes several additional features, such as wide-character 1344 and color support. <EM>ncurses</EM> intends base-level conformance with X/Open 1345 Curses, and supports all features of its enhanced level except the 1346 <STRONG>untic</STRONG> utility. 1347 1348 Differences between X/Open Curses and <EM>ncurses</EM> are documented in the 1349 "PORTABILITY" sections of applicable man pages. 1350 1351 1352</PRE><H3><a name="h3-Error-Checking">Error Checking</a></H3><PRE> 1353 In many cases, X/Open Curses is vague about error conditions, omitting 1354 some of the SVr4 documentation. 1355 1356 Unlike other implementations, <EM>ncurses</EM> checks pointer parameters, such 1357 as those to <EM>WINDOW</EM> structures, to ensure that they are not null. This 1358 is done primarily to guard against programmer error. The standard 1359 interface does not provide a way for the library to tell an application 1360 which of several possible errors occurred. Relying on this (or some 1361 other) extension adversely affects the portability of <EM>curses</EM> 1362 applications. 1363 1364 1365</PRE><H3><a name="h3-Padding-Differences">Padding Differences</a></H3><PRE> 1366 In historical <EM>curses</EM> implementations, delays embedded in the <EM>terminfo</EM> 1367 capabilities <STRONG>carriage_return</STRONG> (<STRONG>cr</STRONG>), <STRONG>scroll_forward</STRONG> (<STRONG>ind</STRONG>), <STRONG>cursor_left</STRONG> 1368 (<STRONG>cub1</STRONG>), <STRONG>form_feed</STRONG> (<STRONG>ff</STRONG>), and <STRONG>tab</STRONG> (<STRONG>ht</STRONG>) activated corresponding delay bits 1369 in the Unix terminal driver. <EM>ncurses</EM> performs all padding by sending 1370 NUL bytes to the device. This method is slightly more expensive, but 1371 narrows the interface to the Unix kernel significantly and 1372 correspondingly increases the package's portability. 1373 1374 1375</PRE><H3><a name="h3-Header-Files">Header Files</a></H3><PRE> 1376 The header file <EM>curses.h</EM> itself includes the header files <EM>stdio.h</EM> and 1377 <EM>unctrl.h</EM>. 1378 1379 X/Open Curses has more to say, 1380 1381 The inclusion of <EM>curses.h</EM> may make visible all symbols from the 1382 headers <EM>stdio.h</EM>, <EM>term.h</EM>, <EM>termios.h</EM>, and <EM>wchar.h</EM>. 1383 1384 but does not finish the story. A more complete account follows. 1385 1386 <STRONG>o</STRONG> Starting with 4BSD <EM>curses</EM> (1980) all implementations have provided 1387 a <EM>curses.h</EM> file. 1388 1389 BSD <EM>curses</EM> code included <EM>curses.h</EM> and <EM>unctrl.h</EM> from an internal 1390 header file <EM>curses.ext</EM>, where "ext" abbreviated "externs". 1391 1392 The implementations of <EM>printw</EM> and <EM>scanw</EM> used undocumented internal 1393 functions of the standard I/O library (<STRONG>_</STRONG><EM>doprnt</EM> and <STRONG>_</STRONG><EM>doscan</EM>), but 1394 nothing in <EM>curses.h</EM> itself relied upon <EM>stdio.h</EM>. 1395 1396 <STRONG>o</STRONG> SVr2 <EM>curses</EM> added <EM>newterm</EM>, which relies upon <EM>stdio.h</EM> because its 1397 function prototype employs the <EM>FILE</EM> type. 1398 1399 SVr4 <EM>curses</EM> added <EM>putwin</EM> and <EM>getwin</EM>, which also use <EM>stdio.h</EM>. 1400 1401 X/Open Curses specifies all three of these functions. 1402 1403 SVr4 <EM>curses</EM> and X/Open Curses do not require the developer to 1404 include <EM>stdio.h</EM> before <EM>curses.h</EM>. Both document use of <EM>curses</EM> as 1405 requiring only <EM>curses.h</EM>. 1406 1407 As a result, standard <EM>curses.h</EM> always includes <EM>stdio.h</EM>. 1408 1409 <STRONG>o</STRONG> X/Open Curses and SVr4 <EM>curses</EM> are inconsistent with respect to 1410 <EM>unctrl.h</EM>. 1411 1412 As noted in <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <EM>ncurses</EM> includes <EM>unctrl.h</EM> from <EM>curses.h</EM> 1413 (as SVr4 does). 1414 1415 <STRONG>o</STRONG> X/Open Curses's comments about <EM>term.h</EM> and <EM>termios.h</EM> may refer to 1416 HP-UX and AIX. 1417 1418 HP-UX <EM>curses</EM> includes <EM>term.h</EM> from <EM>curses.h</EM> to declare <EM>setupterm</EM> in 1419 <EM>curses.h</EM>, but <EM>ncurses</EM> and Solaris <EM>curses</EM> do not. 1420 1421 AIX <EM>curses</EM> includes <EM>term.h</EM> and termios.h<EM>.</EM> Again, <EM>ncurses</EM> and 1422 Solaris <EM>curses</EM> do not. 1423 1424 <STRONG>o</STRONG> X/Open Curses says that <EM>curses.h</EM> <STRONG>may</STRONG> include <EM>term.h</EM>, but does not 1425 require it to do so. 1426 1427 Some programs use functions declared in both <EM>curses.h</EM> and <EM>term.h</EM>, 1428 and must include both header files in the same module. Very old 1429 versions of AIX <EM>curses</EM> required inclusion of <EM>curses.h</EM> before 1430 <EM>term.h</EM>. 1431 1432 The header files supplied by <EM>ncurses</EM> include the standard library 1433 headers required for its declarations, so <EM>ncurses</EM>'s own header 1434 files can be included in any order. But for portability, you 1435 should include <EM>curses.h</EM> before <EM>term.h</EM>. 1436 1437 <STRONG>o</STRONG> X/Open Curses says "may make visible" because including a header 1438 file does not necessarily make visible all of the symbols in it 1439 (consider <STRONG>#ifdef</STRONG> and similar). 1440 1441 For instance, <EM>ncurses</EM>'s <EM>curses.h</EM> <STRONG>may</STRONG> include <EM>wchar.h</EM> if the proper 1442 symbol is defined, and if <EM>ncurses</EM> is configured for wide-character 1443 support. If <EM>wchar.h</EM> is included, its symbols <STRONG>may</STRONG> be made visible 1444 depending on the value of the <STRONG>_XOPEN_SOURCE</STRONG> feature test macro. 1445 1446 <STRONG>o</STRONG> X/Open Curses mandates an application's inclusion of one standard C 1447 library header in a special case: <EM>stdarg.h</EM> before <EM>curses.h</EM> to 1448 prototype the functions <EM>vw</EM><STRONG>_</STRONG><EM>printw</EM> and <EM>vw</EM><STRONG>_</STRONG><EM>scanw</EM> (as well as the 1449 obsolete <EM>vwprintw</EM> and <EM>vwscanw</EM>). Each of these takes a variadic 1450 argument list, a <EM>va</EM><STRONG>_</STRONG><EM>list</EM> parameter, like that of <STRONG>printf(3)</STRONG>. 1451 1452 SVr3 <EM>curses</EM> introduced the two obsolete functions, and X/Open 1453 Curses the others. In between, SVr4 <EM>curses</EM> provided for the 1454 possibility that an application might include either <EM>varargs.h</EM> or 1455 <EM>stdarg.h</EM>. These represented contrasting approaches to handling 1456 variadic argument lists. The older interface, <EM>varargs.h</EM>, used a 1457 pointer to <EM>char</EM> for variadic functions' <EM>va</EM><STRONG>_</STRONG><EM>list</EM> parameter. Later, 1458 the list acquired its own standard data type, <EM>va</EM><STRONG>_</STRONG><EM>list</EM>, defined in 1459 <EM>stdarg.h</EM>, empowering the compiler to check the types of a function 1460 call's actual parameters against the formal ones declared in its 1461 prototype. 1462 1463 No conforming implementations of X/Open Curses require an 1464 application to include <EM>stdarg.h</EM> before <EM>curses.h</EM> because they either 1465 have allowed for a special type, or, like <EM>ncurses</EM>, they include 1466 <EM>stdarg.h</EM> themselves to provide a portable interface. 1467 1468 1469</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE> 1470 Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey. Based on <EM>pcurses</EM> 1471 by Pavel Curtis. 1472 1473 1474</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE> 1475 <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG> 1476 1477 1478 1479ncurses 6.5 2024-04-27 <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> 1480</PRE> 1481<div class="nav"> 1482<ul> 1483<li><a href="#h2-NAME">NAME</a></li> 1484<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li> 1485<li><a href="#h2-DESCRIPTION">DESCRIPTION</a> 1486<ul> 1487<li><a href="#h3-Application-Structure">Application Structure</a></li> 1488<li><a href="#h3-Overview">Overview</a></li> 1489<li><a href="#h3-Initialization">Initialization</a></li> 1490<li><a href="#h3-Naming-Conventions">Naming Conventions</a></li> 1491<li><a href="#h3-Wide-and-Non-wide-Character-Configurations">Wide and Non-wide Character Configurations</a></li> 1492<li><a href="#h3-Function-Name-Index">Function Name Index</a></li> 1493</ul> 1494</li> 1495<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li> 1496<li><a href="#h2-ENVIRONMENT">ENVIRONMENT</a> 1497<ul> 1498<li><a href="#h3-BAUDRATE">BAUDRATE</a></li> 1499<li><a href="#h3-CC-_command-character_">CC (command character)</a></li> 1500<li><a href="#h3-COLUMNS">COLUMNS</a></li> 1501<li><a href="#h3-ESCDELAY">ESCDELAY</a></li> 1502<li><a href="#h3-HOME">HOME</a></li> 1503<li><a href="#h3-LINES">LINES</a></li> 1504<li><a href="#h3-MOUSE_BUTTONS_123">MOUSE_BUTTONS_123</a></li> 1505<li><a href="#h3-NCURSES_ASSUMED_COLORS">NCURSES_ASSUMED_COLORS</a></li> 1506<li><a href="#h3-NCURSES_CONSOLE2">NCURSES_CONSOLE2</a></li> 1507<li><a href="#h3-NCURSES_GPM_TERMS">NCURSES_GPM_TERMS</a></li> 1508<li><a href="#h3-NCURSES_NO_HARD_TABS">NCURSES_NO_HARD_TABS</a></li> 1509<li><a href="#h3-NCURSES_NO_MAGIC_COOKIE">NCURSES_NO_MAGIC_COOKIE</a></li> 1510<li><a href="#h3-NCURSES_NO_PADDING">NCURSES_NO_PADDING</a></li> 1511<li><a href="#h3-NCURSES_NO_SETBUF">NCURSES_NO_SETBUF</a></li> 1512<li><a href="#h3-NCURSES_NO_UTF8_ACS">NCURSES_NO_UTF8_ACS</a></li> 1513<li><a href="#h3-NCURSES_TRACE">NCURSES_TRACE</a></li> 1514<li><a href="#h3-TERM">TERM</a></li> 1515<li><a href="#h3-TERMCAP">TERMCAP</a></li> 1516<li><a href="#h3-TERMINFO">TERMINFO</a></li> 1517<li><a href="#h3-TERMINFO_DIRS">TERMINFO_DIRS</a></li> 1518<li><a href="#h3-TERMPATH">TERMPATH</a></li> 1519</ul> 1520</li> 1521<li><a href="#h2-ALTERNATE-CONFIGURATIONS">ALTERNATE CONFIGURATIONS</a></li> 1522<li><a href="#h2-FILES">FILES</a></li> 1523<li><a href="#h2-NOTES">NOTES</a></li> 1524<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li> 1525<li><a href="#h2-PORTABILITY">PORTABILITY</a> 1526<ul> 1527<li><a href="#h3-Error-Checking">Error Checking</a></li> 1528<li><a href="#h3-Padding-Differences">Padding Differences</a></li> 1529<li><a href="#h3-Header-Files">Header Files</a></li> 1530</ul> 1531</li> 1532<li><a href="#h2-AUTHORS">AUTHORS</a></li> 1533<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li> 1534</ul> 1535</div> 1536</BODY> 1537</HTML> 1538