+</PRE><H3><a name="h3-Initialization">Initialization</a></H3><PRE>
+ The selection of an appropriate value of <EM>TERM</EM> in the process
+ environment is essential to correct <EM>curses</EM> and <EM>terminfo</EM> library
+ operation. A well-configured system selects a correct <EM>TERM</EM> value
+ automatically; <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG> may assist with troubleshooting exotic
+ situations.
+
+ If you change the terminal type, export the <EM>TERM</EM> environment variable
+ 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
+ subsection "Tabs and Initialization" of <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
+
+ If the environment variables <EM>LINES</EM> and <EM>COLUMNS</EM> are set, or if the
+ <EM>curses</EM> program is executing in a graphical windowing environment, the
+ information obtained thence overrides that obtained by <EM>terminfo</EM>. An
+ <EM>ncurses</EM> extension supports resizable terminals; see <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>.
+
+ If the environment variable <EM>TERMINFO</EM> is defined, a <EM>curses</EM> program
+ checks first for a terminal type description in the location it
+ identifies. <EM>TERMINFO</EM> is useful for developing experimental type
+ descriptions or when write permission to <EM>/usr/share/terminfo</EM> is not
+ available.
+
+ See section "ENVIRONMENT" below.
+
+
+</PRE><H3><a name="h3-Naming-Conventions">Naming Conventions</a></H3><PRE>
+ <EM>curses</EM> offers many functions in variant forms using a regular set of
+ alternatives to the name of an elemental one. Those prefixed with "w"
+ require a <EM>WINDOW</EM> pointer argument; those with a "mv" prefix first
+ perform cursor movement using <STRONG><A HREF="curs_move.3x.html">wmove(3x)</A></STRONG>; a "mvw" prefix indicates both.
+ The "w" function is typically the elemental one; the removal of this
+ prefix usually indicates operation on <STRONG>stdscr</STRONG>.
+
+ Four functions prefixed with "p" require a pad argument.
+
+ In function synopses, <EM>ncurses</EM> man pages apply the following names to
+ parameters.
+
+ <EM>bf</EM> <EM>bool</EM> (<STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>)
+ <EM>c</EM> a <EM>char</EM> or <EM>int</EM>
+ <EM>ch</EM> a <EM>chtype</EM>
+ <EM>wc</EM> a <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM> or <EM>wint</EM><STRONG>_</STRONG><EM>t</EM>
+ <EM>wch</EM> a <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>
+ <EM>win</EM> pointer to a <EM>WINDOW</EM>
+ <EM>pad</EM> pointer to a <EM>WINDOW</EM> that is a pad
+
+
+</PRE><H3><a name="h3-Wide-and-Non-wide-Character-Configurations">Wide and Non-wide Character Configurations</a></H3><PRE>
+ This manual page describes functions that appear in any configuration
+ of the library. There are two common configurations; see section
+ "ALTERNATE CONFIGURATIONS" below.
+
+ <EM>ncurses</EM> is the library in its "non-wide" configuration, handling only
+ eight-bit characters. It stores a character combined with
+ attributes in a <EM>chtype</EM> datum, which is often an alias of <EM>int</EM>.
+
+ Attributes alone (with no corresponding character) can be
+ stored in variables of <EM>chtype</EM> or <EM>attr</EM><STRONG>_</STRONG><EM>t</EM> type. In either
+ case, they are represented as an integral bit mask.
+
+ Each cell of a <EM>WINDOW</EM> is stored as a <EM>chtype</EM>.
+
+ <EM>ncursesw</EM> is the library in its "wide" configuration, which handles
+ character encodings requiring a larger data type than <EM>char</EM> (a
+ byte-sized type) can represent. It adds about one third more
+ calls using additional data types that can store such
+ <EM>multibyte</EM> characters.
+
+ <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM> corresponds to the non-wide configuration's <EM>chtype</EM>.
+ It always a structure type, because it stores more
+ data than fit into a standard scalar type. A
+ character code may not be representable as a <EM>char</EM>,
+ and moreover more than one character may occupy a
+ cell (as with accent marks and other diacritics).
+ Each character is of type <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM>; a complex
+ character contains one spacing character and zero or
+ more non-spacing characters (see below). Attributes
+ and color data are stored in separate fields of the
+ structure, not combined as in <EM>chtype</EM>.
+
+ Each cell of a <EM>WINDOW</EM> is stored as a <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>.
+
+ <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>
+ data. The wide library API of <EM>ncurses</EM> depends on two data
+ types standardized by ISO C95.
+
+ <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM> stores a wide character. Like <EM>chtype</EM>, it may be an
+ alias of <EM>int</EM>. Depending on the character encoding,
+ a wide character may be <EM>spacing</EM>, meaning that it
+ occupies a character cell by itself and typically
+ accompanies cursor advancement, or <EM>non-spacing</EM>,
+ meaning that it occupies the same cell as a spacing
+ character, is often regarded as a "modifier" of the
+ base glyph with which it combines, and typically
+ does not advance the cursor.
+
+ <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>,
+ analogously to the <EM>int</EM>-sized character manipulation
+ functions of ISO C and its constant <STRONG>EOF</STRONG>.
+
+ The wide library provides additional functions that
+ complement those in the non-wide library where the size of
+ the underlying character type is significant. A somewhat
+ regular naming convention relates many of the wide variants
+ to their non-wide counterparts; where a non-wide function
+ name contains "ch" or "str", prefix it with "_w" to obtain
+ the wide counterpart. For example, <STRONG>waddch</STRONG> becomes <STRONG>wadd_wch</STRONG>.
+ (Exceptions that add only "w" comprise <STRONG>addwstr</STRONG>, <STRONG>inwstr</STRONG>, and
+ their variants.)
+
+ This convention is inapplicable to some non-wide function
+ names, so other transformations are used for the wide
+ configuration: the window background management function
+ "bkgd" becomes "bkgrnd"; the window border-drawing and
+ -clearing functions are suffixed with "_set"; and character
+ attribute manipulation functions like "attron" become
+ "attr_on".
+
+
+</PRE><H3><a name="h3-Function-Name-Index">Function Name Index</a></H3><PRE>
+ The following table lists the <EM>curses</EM> functions provided in the non-wide
+ and wide APIs and the corresponding man pages that describe them.
+ Those flagged with "*" are <EM>ncurses</EM>-specific, neither described by
+ X/Open Curses nor present in SVr4.
+
+ <STRONG><EM>curses</EM></STRONG> Function Name Man Page