* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_add_wch.3x,v 1.65 2024/05/25 21:13:15 tom Exp @
+ * @Id: curs_add_wch.3x,v 1.67 2024/06/01 22:29:08 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_add_wch 3x 2024-05-25 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_add_wch 3x 2024-06-01 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_add_wch 3x 2024-05-25 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_add_wch 3x 2024-06-01 ncurses 6.5 Library calls</H1>
<PRE>
<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>
<STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>.
If <EM>wch</EM> is any other nonprintable character, it is drawn in printable
- form using the same convention as <STRONG><A HREF="curs_util.3x.html">wunctrl(3x)</A></STRONG>.
+ form using the same convention as <STRONG><A HREF="curs_util.3x.html">wunctrl(3x)</A></STRONG>. Calling <STRONG><A HREF="curs_in_wch.3x.html">win_wch(3x)</A></STRONG> on
+ the location of a nonprintable character does not return the character
+ itself, but its <STRONG><A HREF="curs_util.3x.html">wunctrl(3x)</A></STRONG> representation.
- Calling <STRONG><A HREF="curs_in_wch.3x.html">win_wch(3x)</A></STRONG> on the location of a nonprintable character does
- not return the character itself, but its <STRONG><A HREF="curs_util.3x.html">wunctrl(3x)</A></STRONG> representation.
+ A <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM> can be copied from place to place using <STRONG><A HREF="curs_in_wch.3x.html">win_wch(3x)</A></STRONG> and
+ <STRONG>wadd_wch</STRONG>.
</PRE><H3><a name="h3-wecho_wchar">wecho_wchar</a></H3><PRE>
<STRONG>WACS_UARROW</STRONG> 0x2191 ^ - arrow pointing up
<STRONG>WACS_ULCORNER</STRONG> 0x250c + l upper left-hand corner
<STRONG>WACS_URCORNER</STRONG> 0x2510 + k upper right-hand corner
+
<STRONG>WACS_VLINE</STRONG> 0x2502 | x vertical line
The wide-character configuration of <EM>ncurses</EM> also defines symbols for
These functions are described in X/Open Curses, Issue 4. It specifies
no error conditions for them.
- SVr4 <EM>curses</EM> describes a successful return value only as "an integer
- value other than <STRONG>ERR</STRONG>".
-
- The defaults specified for forms-drawing characters apply in the POSIX
- locale. X/Open Curses makes it clear that the WACS_ symbols should be
- defined as a pointer to <STRONG>cchar_t</STRONG> data, e.g., in the discussion of
+ The defaults specified for forms-drawing characters apply in the POSIX
+ locale. X/Open Curses makes it clear that the WACS_ symbols should be
+ defined as a pointer to <STRONG>cchar_t</STRONG> data, e.g., in the discussion of
<STRONG>border_set</STRONG>. A few implementations are problematic:
<STRONG>o</STRONG> NetBSD curses defines the symbols as a <STRONG>wchar_t</STRONG> within a <STRONG>cchar_t</STRONG>.
- <STRONG>o</STRONG> HP-UX curses equates some of the <STRONG>ACS_</STRONG> symbols to the analogous
- <STRONG>WACS_</STRONG> symbols as if the <STRONG>ACS_</STRONG> symbols were wide characters. The
- misdefined symbols are the arrows and other symbols which are not
+ <STRONG>o</STRONG> HP-UX curses equates some of the <STRONG>ACS_</STRONG> symbols to the analogous
+ <STRONG>WACS_</STRONG> symbols as if the <STRONG>ACS_</STRONG> symbols were wide characters. The
+ misdefined symbols are the arrows and other symbols which are not
used for line-drawing.
- X/Open Curses does not specify symbols for thick- or double-lines.
+ X/Open Curses does not specify symbols for thick- or double-lines.
SVr4 curses implementations defined their line-drawing symbols in terms
- of intermediate symbols. This implementation extends those symbols,
+ of intermediate symbols. This implementation extends those symbols,
providing new definitions which are not in the SVr4 implementations.
- Not all Unicode-capable terminals provide support for VT100-style
- alternate character sets (i.e., the <STRONG>acsc</STRONG> capability), with their
- corresponding line-drawing characters. X/Open Curses did not address
- the aspect of integrating Unicode with line-drawing characters.
- Existing implementations of Unix curses (AIX, HP-UX, Solaris) use only
+ Not all Unicode-capable terminals provide support for VT100-style
+ alternate character sets (i.e., the <STRONG>acsc</STRONG> capability), with their
+ corresponding line-drawing characters. X/Open Curses did not address
+ the aspect of integrating Unicode with line-drawing characters.
+ Existing implementations of Unix curses (AIX, HP-UX, Solaris) use only
the <STRONG>acsc</STRONG> character-mapping to provide this feature. As a result, those
implementations can only use single-byte line-drawing characters.
- <EM>ncurses</EM> 5.3 (2002) provided a table of Unicode values to solve these
+ <EM>ncurses</EM> 5.3 (2002) provided a table of Unicode values to solve these
problems. NetBSD curses incorporated that table in 2010.
- In this implementation, the Unicode values are used instead of the
+ In this implementation, the Unicode values are used instead of the
terminal description's <STRONG>acsc</STRONG> mapping as discussed in <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> for the
- 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
+ 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
cases, the line-drawing characters described in <STRONG><A HREF="curs_addch.3x.html">addch(3x)</A></STRONG> will use only
the ASCII default values.
- Having Unicode available does not solve all of the problems with line-
+ Having Unicode available does not solve all of the problems with line-
drawing for curses:
- <STRONG>o</STRONG> The closest Unicode equivalents to the VT100 graphics <EM>S1</EM>, <EM>S3</EM>, <EM>S7</EM>
- and <EM>S9</EM> frequently are not displayed at the regular intervals which
+ <STRONG>o</STRONG> The closest Unicode equivalents to the VT100 graphics <EM>S1</EM>, <EM>S3</EM>, <EM>S7</EM>
+ and <EM>S9</EM> frequently are not displayed at the regular intervals which
the terminal used.
- <STRONG>o</STRONG> The <EM>lantern</EM> is a special case. It originated with the AT&T 4410
- terminal in the early 1980s. There is no accessible documentation
+ <STRONG>o</STRONG> The <EM>lantern</EM> is a special case. It originated with the AT&T 4410
+ terminal in the early 1980s. There is no accessible documentation
depicting the lantern symbol on the AT&T terminal.
Lacking documentation, most readers assume that a <EM>storm</EM> <EM>lantern</EM> was
intended. But there are several possibilities, all with problems.
- Unicode 6.0 (2010) does provide two lantern symbols: U+1F383 and
- U+1F3EE. Those were not available in 2002, and are irrelevant
- since they lie outside the BMP and as a result are not generally
+ Unicode 6.0 (2010) does provide two lantern symbols: U+1F383 and
+ U+1F3EE. Those were not available in 2002, and are irrelevant
+ since they lie outside the BMP and as a result are not generally
available in terminals. They are not storm lanterns, in any case.
Most <EM>storm</EM> <EM>lanterns</EM> have a tapering glass chimney (to guard against
tipping); some have a wire grid protecting the chimney.
- For the tapering appearance, U+2603 was adequate. In use on a
+ For the tapering appearance, U+2603 was adequate. In use on a
terminal, no one can tell what the image represents. Unicode calls
it a snowman.
Others have suggested these alternatives: <section> U+00A7 (section
- mark), <Theta> U+0398 (theta), <Phi> U+03A6 (phi), <delta> U+03B4
+ mark), <Theta> U+0398 (theta), <Phi> U+03A6 (phi), <delta> U+03B4
(delta), U+2327 (x in a rectangle), U+256C (forms double vertical
and horizontal), and U+2612 (ballot box with x).
</PRE><H3><a name="h3-Complex-Characters">Complex Characters</a></H3><PRE>
- The complex character type <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM> can store more than one wide
- character (<EM>wchar</EM><STRONG>_</STRONG><EM>t</EM>). X/Open Curses does not mention this possibility,
- specifying behavior only where <EM>wch</EM> is a single character, either
+ The complex character type <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM> can store more than one wide
+ character (<EM>wchar</EM><STRONG>_</STRONG><EM>t</EM>). X/Open Curses does not mention this possibility,
+ specifying behavior only where <EM>wch</EM> is a single character, either
spacing or non-spacing.
<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
<STRONG>o</STRONG> holds one non-spacing character.
- In the latter case, <EM>ncurses</EM> adds the non-spacing character to the
+ In the latter case, <EM>ncurses</EM> adds the non-spacing character to the
active complex character.
+</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
+ These functions were initially specified by X/Open Curses, Issue 4.
+ The System V Interface Definition, Version 4 (1995), specified
+ functions named <EM>waddwch</EM> and <EM>wechowchar</EM> (and the usual variants). These
+ were later additions to SVr4.<EM>x</EM>, not appearing in the first SVr4 (1989).
+ They differed from X/Open's <EM>wadd</EM><STRONG>_</STRONG><EM>wch</EM> and <EM>wecho</EM><STRONG>_</STRONG><EM>wchar</EM> in that they each
+ took an argument of type <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM> instead of <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>.
+
+
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library in
its non-wide-character configuration.
-ncurses 6.5 2024-05-25 <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
+ncurses 6.5 2024-06-01 <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h3-Complex-Characters">Complex Characters</a></li>
</ul>
</li>
+<li><a href="#h2-HISTORY">HISTORY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>