3 ****************************************************************************
4 * Copyright 2019-2023,2024 Thomas E. Dickey *
5 * Copyright 2001-2015,2017 Free Software Foundation, Inc. *
7 * Permission is hereby granted, free of charge, to any person obtaining a *
8 * copy of this software and associated documentation files (the *
9 * "Software"), to deal in the Software without restriction, including *
10 * without limitation the rights to use, copy, modify, merge, publish, *
11 * distribute, distribute with modifications, sublicense, and/or sell *
12 * copies of the Software, and to permit persons to whom the Software is *
13 * furnished to do so, subject to the following conditions: *
15 * The above copyright notice and this permission notice shall be included *
16 * in all copies or substantial portions of the Software. *
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
19 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
20 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
21 * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
22 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
23 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
24 * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
26 * Except as contained in this notice, the name(s) of the above copyright *
27 * holders shall not be used in advertising or otherwise to promote the *
28 * sale, use or other dealings in this Software without prior written *
30 ****************************************************************************
31 * @Id: curs_add_wch.3x,v 1.63 2024/05/11 21:31:45 tom Exp @
33 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
36 <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
37 <meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
38 <TITLE>curs_add_wch 3x 2024-05-11 ncurses 6.5 Library calls</TITLE>
39 <link rel="author" href="mailto:bug-ncurses@gnu.org">
43 <H1 class="no-header">curs_add_wch 3x 2024-05-11 ncurses 6.5 Library calls</H1>
45 <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
50 </PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
51 <STRONG>add_wch</STRONG>, <STRONG>wadd_wch</STRONG>, <STRONG>mvadd_wch</STRONG>, <STRONG>mvwadd_wch</STRONG>, <STRONG>echo_wchar</STRONG>, <STRONG>wecho_wchar</STRONG> - add
52 a <EM>curses</EM> complex character to a window, possibly advancing the cursor
55 </PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
56 <STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
58 <STRONG>int</STRONG> <STRONG>add_wch(const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
59 <STRONG>int</STRONG> <STRONG>wadd_wch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
60 <STRONG>int</STRONG> <STRONG>mvadd_wch(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
61 <STRONG>int</STRONG> <STRONG>mvwadd_wch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
63 <STRONG>int</STRONG> <STRONG>echo_wchar(const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
64 <STRONG>int</STRONG> <STRONG>wecho_wchar(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
67 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
69 </PRE><H3><a name="h3-wadd_wch">wadd_wch</a></H3><PRE>
70 <STRONG>wadd_wch</STRONG> writes the complex character <EM>wch</EM> to the window <EM>win</EM>, then may
71 advance the cursor position, analogously to the standard C library's
72 <STRONG>putwchar(3)</STRONG>. <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> describes the variants of this function.
74 Much behavior depends on whether the wide characters in <EM>wch</EM> are spacing
75 or non-spacing; see subsection "Complex Characters" below.
77 <STRONG>o</STRONG> If <EM>wch</EM> contains a spacing character, then any character at the
78 cursor is first removed. The complex character <EM>wch</EM>, with its
79 attributes and color pair identifier, becomes the <EM>base</EM> of the
80 <EM>active</EM> <EM>complex</EM> <EM>character</EM>.
82 <STRONG>o</STRONG> If <EM>wch</EM> contains only non-spacing characters, they are combined with
83 the active complex character. <EM>curses</EM> ignores its attributes and
84 color pair identifier, and does not advance the cursor.
86 Further non-spacing characters added with <STRONG>wadd_wch</STRONG> are not written at
87 the new cursor position but combine with the active complex character
88 until another spacing character is written to the window or the cursor
91 If advancement occurs at the right margin,
93 <STRONG>o</STRONG> the cursor automatically wraps to the beginning of the next line,
96 <STRONG>o</STRONG> if it was at the bottom of the scrolling region, and if
97 <STRONG><A HREF="scrollok.3x.html">scrollok(3x)</A></STRONG> is enabled for <EM>win</EM>, the scrolling region scrolls up
100 If <EM>wch</EM> is a backspace, carriage return, line feed, or tab, the cursor
101 moves appropriately within the window.
103 <STRONG>o</STRONG> Backspace moves the cursor one character left; at the left margin
104 of a window, it does nothing.
106 <STRONG>o</STRONG> Carriage return moves the cursor to the left margin on the current
109 <STRONG>o</STRONG> Line feed does a <STRONG><A HREF="curs_clear.3x.html">clrtoeol(3x)</A></STRONG>, then advances as if from the right
112 <STRONG>o</STRONG> Tab advances the cursor to the next tab stop (possibly on the next
113 line); these are placed at every eighth column by default. Alter
114 the tab interval with the <STRONG>TABSIZE</STRONG> extension; see
115 <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>.
117 If <EM>wch</EM> is any other nonprintable character, it is drawn in printable
118 form using the same convention as <STRONG><A HREF="curs_util.3x.html">wunctrl(3x)</A></STRONG>.
120 Calling <STRONG><A HREF="curs_in_wch.3x.html">win_wch(3x)</A></STRONG> on the location of a nonprintable character does
121 not return the character itself, but its <STRONG><A HREF="curs_util.3x.html">wunctrl(3x)</A></STRONG> representation.
124 </PRE><H3><a name="h3-wecho_wchar">wecho_wchar</a></H3><PRE>
125 <STRONG>echo_wchar</STRONG> and <STRONG>wecho_wchar</STRONG> are equivalent to calling (<STRONG>w</STRONG>)<STRONG>add_wch</STRONG>
126 followed by (<STRONG>w</STRONG>)<STRONG>refresh</STRONG>. <EM>curses</EM> interprets these functions as a hint
127 that only a single (complex) character is being output; for non-control
128 characters, a considerable performance gain may be enjoyed by employing
132 </PRE><H3><a name="h3-Forms-Drawing-Characters">Forms-Drawing Characters</a></H3><PRE>
133 <EM>curses</EM> defines macros starting with <STRONG>WACS_</STRONG> that can be used with
134 <STRONG>wadd_wch</STRONG> to write line-drawing and other special characters to the
135 screen. <EM>ncurses</EM> terms these <EM>forms-drawing</EM> <EM>characters.</EM> The ACS default
136 listed below is used if the <STRONG>acs_chars</STRONG> (<STRONG>acsc</STRONG>) <EM>terminfo</EM> capability does
137 not define a terminal-specific replacement for it, or if the terminal
138 and locale configuration requires Unicode to access these characters
139 but the library is unable to use Unicode. The "acsc char" column
140 corresponds to how the characters are specified in the <STRONG>acs_chars</STRONG> (<STRONG>acsc</STRONG>)
141 string capability, and the characters in it may appear on the screen if
142 the terminal type's database entry incorrectly advertises ACS support.
143 The name "ACS" originates in the Alternate Character Set feature of the
146 <STRONG>Unicode</STRONG> <STRONG>ACS</STRONG> <STRONG>acsc</STRONG>
147 <STRONG>Symbol</STRONG> <STRONG>Default</STRONG> <STRONG>Default</STRONG> <STRONG>char</STRONG> <STRONG>Glyph</STRONG> <STRONG>Name</STRONG>
148 ------------------------------------------------------------------------
149 <STRONG>WACS_BLOCK</STRONG> 0x25ae # 0 solid square block
150 <STRONG>WACS_BOARD</STRONG> 0x2592 # h board of squares
151 <STRONG>WACS_BTEE</STRONG> 0x2534 + v bottom tee
152 <STRONG>WACS_BULLET</STRONG> 0x00b7 o ~ bullet
153 <STRONG>WACS_CKBOARD</STRONG> 0x2592 : a checker board (stipple)
154 <STRONG>WACS_DARROW</STRONG> 0x2193 v . arrow pointing down
155 <STRONG>WACS_DEGREE</STRONG> 0x00b0 ' f degree symbol
156 <STRONG>WACS_DIAMOND</STRONG> 0x25c6 + ` diamond
157 <STRONG>WACS_GEQUAL</STRONG> 0x2265 > > greater-than-or-equal-to
158 <STRONG>WACS_HLINE</STRONG> 0x2500 - q horizontal line
159 <STRONG>WACS_LANTERN</STRONG> 0x2603 # i lantern symbol
160 <STRONG>WACS_LARROW</STRONG> 0x2190 < , arrow pointing left
161 <STRONG>WACS_LEQUAL</STRONG> 0x2264 < y less-than-or-equal-to
162 <STRONG>WACS_LLCORNER</STRONG> 0x2514 + m lower left-hand corner
163 <STRONG>WACS_LRCORNER</STRONG> 0x2518 + j lower right-hand corner
164 <STRONG>WACS_LTEE</STRONG> 0x2524 + t left tee
165 <STRONG>WACS_NEQUAL</STRONG> 0x2260 ! | not-equal
166 <STRONG>WACS_PI</STRONG> 0x03c0 * { greek pi
167 <STRONG>WACS_PLMINUS</STRONG> 0x00b1 # g plus/minus
168 <STRONG>WACS_PLUS</STRONG> 0x253c + n plus
169 <STRONG>WACS_RARROW</STRONG> 0x2192 > + arrow pointing right
170 <STRONG>WACS_RTEE</STRONG> 0x251c + u right tee
171 <STRONG>WACS_S1</STRONG> 0x23ba - o scan line 1
172 <STRONG>WACS_S3</STRONG> 0x23bb - p scan line 3
173 <STRONG>WACS_S7</STRONG> 0x23bc - r scan line 7
174 <STRONG>WACS_S9</STRONG> 0x23bd _ s scan line 9
175 <STRONG>WACS_STERLING</STRONG> 0x00a3 f } pound-sterling symbol
176 <STRONG>WACS_TTEE</STRONG> 0x252c + w top tee
177 <STRONG>WACS_UARROW</STRONG> 0x2191 ^ - arrow pointing up
178 <STRONG>WACS_ULCORNER</STRONG> 0x250c + l upper left-hand corner
179 <STRONG>WACS_URCORNER</STRONG> 0x2510 + k upper right-hand corner
180 <STRONG>WACS_VLINE</STRONG> 0x2502 | x vertical line
182 The wide-character configuration of <EM>ncurses</EM> also defines symbols for
183 thick lines (<STRONG>acsc</STRONG> "J" to "V"):
185 <STRONG>Unicode</STRONG> <STRONG>ASCII</STRONG> <STRONG>acsc</STRONG>
186 <STRONG>ACS</STRONG> <STRONG>Name</STRONG> <STRONG>Default</STRONG> <STRONG>Default</STRONG> <STRONG>Char</STRONG> <STRONG>Glyph</STRONG> <STRONG>Name</STRONG>
187 ------------------------------------------------------------------------
188 <STRONG>WACS_T_BTEE</STRONG> 0x253b + V thick tee pointing up
189 <STRONG>WACS_T_HLINE</STRONG> 0x2501 - Q thick horizontal line
190 <STRONG>WACS_T_LLCORNER</STRONG> 0x2517 + M thick lower left corner
191 <STRONG>WACS_T_LRCORNER</STRONG> 0x251b + J thick lower right corner
192 <STRONG>WACS_T_LTEE</STRONG> 0x252b + T thick tee pointing right
193 <STRONG>WACS_T_PLUS</STRONG> 0x254b + N thick large plus
194 <STRONG>WACS_T_RTEE</STRONG> 0x2523 + U thick tee pointing left
195 <STRONG>WACS_T_TTEE</STRONG> 0x2533 + W thick tee pointing down
196 <STRONG>WACS_T_ULCORNER</STRONG> 0x250f + L thick upper left corner
197 <STRONG>WACS_T_URCORNER</STRONG> 0x2513 + K thick upper right corner
198 <STRONG>WACS_T_VLINE</STRONG> 0x2503 | X thick vertical line
200 and for double-lines (<STRONG>acsc</STRONG> "A" to "I"):
202 <STRONG>Unicode</STRONG> <STRONG>ASCII</STRONG> <STRONG>acsc</STRONG>
203 <STRONG>ACS</STRONG> <STRONG>Name</STRONG> <STRONG>Default</STRONG> <STRONG>Default</STRONG> <STRONG>Char</STRONG> <STRONG>Glyph</STRONG> <STRONG>Name</STRONG>
204 ------------------------------------------------------------------------
205 <STRONG>WACS_D_BTEE</STRONG> 0x2569 + H double tee pointing up
206 <STRONG>WACS_D_HLINE</STRONG> 0x2550 - R double horizontal line
207 <STRONG>WACS_D_LLCORNER</STRONG> 0x255a + D double lower left corner
208 <STRONG>WACS_D_LRCORNER</STRONG> 0x255d + A double lower right corner
209 <STRONG>WACS_D_LTEE</STRONG> 0x2560 + F double tee pointing right
210 <STRONG>WACS_D_PLUS</STRONG> 0x256c + E double large plus
211 <STRONG>WACS_D_RTEE</STRONG> 0x2563 + G double tee pointing left
212 <STRONG>WACS_D_TTEE</STRONG> 0x2566 + I double tee pointing down
213 <STRONG>WACS_D_ULCORNER</STRONG> 0x2554 + C double upper left corner
214 <STRONG>WACS_D_URCORNER</STRONG> 0x2557 + B double upper right corner
215 <STRONG>WACS_D_VLINE</STRONG> 0x2551 | Y double vertical line
217 Unicode's descriptions for these characters differs slightly from
218 <EM>ncurses</EM>, by introducing the term "light" (along with less important
219 details). Here are its descriptions for the normal, thick, and double
222 <STRONG>o</STRONG> U+2500 BOX DRAWINGS LIGHT HORIZONTAL
224 <STRONG>o</STRONG> U+2501 BOX DRAWINGS HEAVY HORIZONTAL
226 <STRONG>o</STRONG> U+2550 BOX DRAWINGS DOUBLE HORIZONTAL
229 </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
230 These functions return <STRONG>OK</STRONG> on success and <STRONG>ERR</STRONG> on failure. In <EM>ncurses</EM>,
231 <STRONG>wadd_wch</STRONG> returns <STRONG>ERR</STRONG> if
233 <STRONG>o</STRONG> <EM>win</EM> is <STRONG>NULL</STRONG>,
235 <STRONG>o</STRONG> wrapping to a new line is impossible because <STRONG><A HREF="scrollok.3x.html">scrollok(3x)</A></STRONG> has not
236 been called on <EM>win</EM> when writing to its bottom right location is
239 <STRONG>o</STRONG> it is not possible to add a complete character at the cursor
242 Functions prefixed with "mv" first perform cursor movement and fail if
243 the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
246 </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
247 <STRONG>add_wch</STRONG>, <STRONG>mvadd_wch</STRONG>, <STRONG>mvwadd_wch</STRONG>, and <STRONG>echo_wchar</STRONG> may be implemented as
251 </PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
253 </PRE><H3><a name="h3-TABSIZE">TABSIZE</a></H3><PRE>
254 The <STRONG>TABSIZE</STRONG> variable is implemented in SVr4 and other versions of
255 <EM>curses</EM>, but is not specified by X/Open Curses (see <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>).
258 </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
259 These functions are described in X/Open Curses, Issue 4. It specifies
260 no error conditions for them.
262 SVr4 <EM>curses</EM> describes a successful return value only as "an integer
263 value other than <STRONG>ERR</STRONG>".
265 The defaults specified for forms-drawing characters apply in the POSIX
266 locale. X/Open Curses makes it clear that the WACS_ symbols should be
267 defined as a pointer to <STRONG>cchar_t</STRONG> data, e.g., in the discussion of
268 <STRONG>border_set</STRONG>. A few implementations are problematic:
270 <STRONG>o</STRONG> NetBSD curses defines the symbols as a <STRONG>wchar_t</STRONG> within a <STRONG>cchar_t</STRONG>.
272 <STRONG>o</STRONG> HP-UX curses equates some of the <STRONG>ACS_</STRONG> symbols to the analogous
273 <STRONG>WACS_</STRONG> symbols as if the <STRONG>ACS_</STRONG> symbols were wide characters. The
274 misdefined symbols are the arrows and other symbols which are not
275 used for line-drawing.
277 X/Open Curses does not specify symbols for thick- or double-lines.
278 SVr4 curses implementations defined their line-drawing symbols in terms
279 of intermediate symbols. This implementation extends those symbols,
280 providing new definitions which are not in the SVr4 implementations.
282 Not all Unicode-capable terminals provide support for VT100-style
283 alternate character sets (i.e., the <STRONG>acsc</STRONG> capability), with their
284 corresponding line-drawing characters. X/Open Curses did not address
285 the aspect of integrating Unicode with line-drawing characters.
286 Existing implementations of Unix curses (AIX, HP-UX, Solaris) use only
287 the <STRONG>acsc</STRONG> character-mapping to provide this feature. As a result, those
288 implementations can only use single-byte line-drawing characters.
289 <EM>ncurses</EM> 5.3 (2002) provided a table of Unicode values to solve these
290 problems. NetBSD curses incorporated that table in 2010.
292 In this implementation, the Unicode values are used instead of the
293 terminal description's <STRONG>acsc</STRONG> mapping as discussed in <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> for the
294 environment variable <EM>NCURSES</EM><STRONG>_</STRONG><EM>NO</EM><STRONG>_</STRONG><EM>UTF8</EM><STRONG>_</STRONG><EM>ACS</EM>. In contrast, for the same
295 cases, the line-drawing characters described in <STRONG><A HREF="curs_addch.3x.html">addch(3x)</A></STRONG> will use only
296 the ASCII default values.
298 Having Unicode available does not solve all of the problems with line-
301 <STRONG>o</STRONG> The closest Unicode equivalents to the VT100 graphics <EM>S1</EM>, <EM>S3</EM>, <EM>S7</EM>
302 and <EM>S9</EM> frequently are not displayed at the regular intervals which
305 <STRONG>o</STRONG> The <EM>lantern</EM> is a special case. It originated with the AT&T 4410
306 terminal in the early 1980s. There is no accessible documentation
307 depicting the lantern symbol on the AT&T terminal.
309 Lacking documentation, most readers assume that a <EM>storm</EM> <EM>lantern</EM> was
310 intended. But there are several possibilities, all with problems.
312 Unicode 6.0 (2010) does provide two lantern symbols: U+1F383 and
313 U+1F3EE. Those were not available in 2002, and are irrelevant
314 since they lie outside the BMP and as a result are not generally
315 available in terminals. They are not storm lanterns, in any case.
317 Most <EM>storm</EM> <EM>lanterns</EM> have a tapering glass chimney (to guard against
318 tipping); some have a wire grid protecting the chimney.
320 For the tapering appearance, U+2603 was adequate. In use on a
321 terminal, no one can tell what the image represents. Unicode calls
324 Others have suggested these alternatives: <section> U+00A7 (section
325 mark), <Theta> U+0398 (theta), <Phi> U+03A6 (phi), <delta> U+03B4
326 (delta), U+2327 (x in a rectangle), U+256C (forms double vertical
327 and horizontal), and U+2612 (ballot box with x).
330 </PRE><H3><a name="h3-Complex-Characters">Complex Characters</a></H3><PRE>
331 The complex character type <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM> can store more than one wide
332 character (<EM>wchar</EM><STRONG>_</STRONG><EM>t</EM>). X/Open Curses does not mention this possibility,
333 specifying behavior only where <EM>wch</EM> is a single character, either
334 spacing or non-spacing.
336 <EM>ncurses</EM> assumes that <EM>wch</EM> is constructed using <STRONG><A HREF="curs_getcchar.3x.html">setcchar(3x)</A></STRONG>, and in turn
339 <STRONG>o</STRONG> contains at most one spacing character at the beginning of its list
340 of wide characters, and zero or more non-spacing characters, or
342 <STRONG>o</STRONG> holds one non-spacing character.
344 In the latter case, <EM>ncurses</EM> adds the non-spacing character to the
345 active complex character.
348 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
349 <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library in
350 its non-wide-character configuration.
352 <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>, <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>,
353 <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>, <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>, <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>,
354 <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG>putwc(3)</STRONG>
358 ncurses 6.5 2024-05-11 <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
362 <li><a href="#h2-NAME">NAME</a></li>
363 <li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
364 <li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
366 <li><a href="#h3-wadd_wch">wadd_wch</a></li>
367 <li><a href="#h3-wecho_wchar">wecho_wchar</a></li>
368 <li><a href="#h3-Forms-Drawing-Characters">Forms-Drawing Characters</a></li>
371 <li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
372 <li><a href="#h2-NOTES">NOTES</a></li>
373 <li><a href="#h2-EXTENSIONS">EXTENSIONS</a>
375 <li><a href="#h3-TABSIZE">TABSIZE</a></li>
378 <li><a href="#h2-PORTABILITY">PORTABILITY</a>
380 <li><a href="#h3-Complex-Characters">Complex Characters</a></li>
383 <li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>