+</PRE><H3><a name="h3-Line-Graphics">Line Graphics</a></H3><PRE>
+ The following variables may be used to add line drawing characters to
+ the screen with routines of the <B>addch</B> family. The default character
+ listed below is used if the <B>acsc</B> capability does not define a terminal-
+ specific replacement for it, or if the terminal and locale
+ configuration requires Unicode but the library is unable to use
+ Unicode.
+
+ The names are taken from VT100 nomenclature.
+
+ <B>ACS</B> <B>ACS</B> <B>acsc</B> <B>Glyph</B>
+ <B>Name</B> <B>Default</B> <B>char</B> <B>Name</B>
+ ---------------------------------------------------------
+ ACS_BLOCK # 0 solid square block
+ ACS_BOARD # h board of squares
+ ACS_BTEE + v bottom tee
+ ACS_BULLET o ~ bullet
+ ACS_CKBOARD : a checker board (stipple)
+ ACS_DARROW v . arrow pointing down
+ ACS_DEGREE ' f degree symbol
+ ACS_DIAMOND + ` diamond
+ ACS_GEQUAL > > greater-than-or-equal-to
+ ACS_HLINE - q horizontal line
+ ACS_LANTERN # i lantern symbol
+ ACS_LARROW < , arrow pointing left
+ ACS_LEQUAL < y less-than-or-equal-to
+ ACS_LLCORNER + m lower left-hand corner
+ ACS_LRCORNER + j lower right-hand corner
+ ACS_LTEE + t left tee
+ ACS_NEQUAL ! | not-equal
+ ACS_PI * { greek pi
+ ACS_PLMINUS # g plus/minus
+ ACS_PLUS + n plus
+ ACS_RARROW > + arrow pointing right
+ ACS_RTEE + u right tee
+ ACS_S1 - o scan line 1
+ ACS_S3 - p scan line 3
+ ACS_S7 - r scan line 7
+ ACS_S9 _ s scan line 9
+ ACS_STERLING f } pound-sterling symbol
+ ACS_TTEE + w top tee
+ ACS_UARROW ^ - arrow pointing up
+ ACS_ULCORNER + l upper left-hand corner
+ ACS_URCORNER + k upper right-hand corner
+ ACS_VLINE | x vertical line
+
+
+</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
+ All routines return the integer <B>ERR</B> upon failure and <B>OK</B> on success (the
+ SVr4 manuals specify only "an integer value other than <B>ERR</B>") upon
+ successful completion, unless otherwise noted in the preceding routine
+ descriptions.
+
+ Functions with a "mv" prefix first perform a cursor movement using
+ <B>wmove</B>, and return an error if the position is outside the window, or if
+ the window pointer is null.
+
+ If it is not possible to add a complete character, an error is
+ returned:
+
+ <B>o</B> If <B>scrollok</B> is not enabled, writing a character at the lower right
+ margin succeeds. However, an error is returned because it is not
+ possible to wrap to a new line
+
+ <B>o</B> If an error is detected when converting a multibyte character to a
+ sequence of bytes, or if it is not possible to add all of the
+ resulting bytes in the window, an error is returned.
+
+
+</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
+ Note that <B>addch</B>, <B>mvaddch</B>, <B>mvwaddch</B>, and <B>echochar</B> may be macros.
+
+
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ All these functions are described in the XSI Curses standard, Issue 4.
+ The defaults specified for forms-drawing characters apply in the POSIX
+ locale.
+
+
+</PRE><H3><a name="h3-ACS-Symbols">ACS Symbols</a></H3><PRE>
+ X/Open Curses states that the <I>ACS</I><B>_</B> definitions are <B>char</B> constants. For
+ the wide-character implementation (see <B>curs_add_wch</B>), there are
+ analogous <I>WACS</I><B>_</B> definitions which are <B>cchar_t</B> constants. Some
+ implementations are problematic:
+
+ <B>o</B> Some implementations define the ACS symbols to a constant (such as
+ Solaris), while others define those to entries in an array.
+
+ This implementation uses an array <B>acs_map</B>, as done in SVr4 curses.
+ NetBSD also uses an array, actually named <B>_acs_char</B>, with a <B>#define</B>
+ for compatibility.
+
+ <B>o</B> HPUX curses equates some of the <I>ACS</I><B>_</B> symbols to the analogous <I>WACS</I><B>_</B>
+ symbols as if the <I>ACS</I><B>_</B> symbols were wide characters. The
+ misdefined symbols are the arrows and other symbols which are not
+ used for line-drawing.
+
+ <B>o</B> X/Open Curses (issues 2 through 7) has a typographical error for
+ the ACS_LANTERN symbol, equating its "VT100+ Character" to <B>I</B>
+ (capital I), while the header files for SVr4 curses and the various
+ implementations use <B>i</B> (lowercase).
+
+ None of the terminal descriptions on Unix platforms use uppercase-
+ I, except for Solaris (i.e., <I>screen</I>'s terminal description,
+ apparently based on the X/Open documentation around 1995). On the
+ other hand, the terminal description <I>gs6300</I> (AT&T PC6300 with EMOTS
+ Terminal Emulator) uses lowercase-i.
+
+ Some ACS symbols (ACS_S3, ACS_S7, ACS_LEQUAL, ACS_GEQUAL, ACS_PI,
+ ACS_NEQUAL, ACS_STERLING) were not documented in any publicly released
+ System V. However, many publicly available terminfos include <B>acsc</B>
+ strings in which their key characters (pryz{|}) are embedded, and a
+ second-hand list of their character descriptions has come to light.
+ The ACS-prefixed names for them were invented for <B><A HREF="ncurses.3X.html">ncurses(3X)</A></B>.
+
+ The <I>displayed</I> values for the <I>ACS</I><B>_</B> and <I>WACS</I><B>_</B> constants depend on
+
+ <B>o</B> the library configuration, i.e., <B>ncurses</B> versus <B>ncursesw</B>, where the
+ latter is capable of displaying Unicode while the former is not,
+ and
+
+ <B>o</B> whether the <I>locale</I> uses UTF-8 encoding.