aboutsummaryrefslogtreecommitdiff
path: root/man/curs_add_wch.3x
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2020-02-07 08:36:41 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2020-02-07 08:36:41 +0000
commitf0179cb6083cc92e5947ae56e6a0a5c5328aead0 (patch)
treebcee0ba9c2149b71f0bfc036df1e61e3105bf980 /man/curs_add_wch.3x
parentcea297eb34d2361e79529034397465068ae34ecd (diff)
downloadsrc-f0179cb6083cc92e5947ae56e6a0a5c5328aead0.tar.gz
src-f0179cb6083cc92e5947ae56e6a0a5c5328aead0.zip
Vendor import ncurses 6.1-20200118vendor/ncurses/6.1-20200118
Notes
Notes: svn path=/vendor/ncurses/dist/; revision=357645 svn path=/vendor/ncurses/6.1-20200118/; revision=357646; tag=vendor/ncurses/6.1-20200118
Diffstat (limited to 'man/curs_add_wch.3x')
-rw-r--r--man/curs_add_wch.3x226
1 files changed, 158 insertions, 68 deletions
diff --git a/man/curs_add_wch.3x b/man/curs_add_wch.3x
index b7164ada0e2b..245cc17e0cae 100644
--- a/man/curs_add_wch.3x
+++ b/man/curs_add_wch.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright (c) 2001-2011,2012 Free Software Foundation, Inc. *
+.\" Copyright (c) 2001-2017,2019 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
@@ -26,10 +26,15 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_add_wch.3x,v 1.15 2012/11/03 23:03:59 tom Exp $
+.\" $Id: curs_add_wch.3x,v 1.25 2019/10/27 00:07:13 tom Exp $
.TH curs_add_wch 3X ""
+.ie \n(.g .ds `` \(lq
+.el .ds `` ``
+.ie \n(.g .ds '' \(rq
+.el .ds '' ''
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.SH NAME
\fBadd_wch\fP,
@@ -55,6 +60,7 @@
.B "int wecho_wchar( WINDOW *\fIwin\fP, const cchar_t *\fIwch\fB );"
.br
.SH DESCRIPTION
+.SS add_wch
.PP
The
\fBadd_wch\fP,
@@ -83,12 +89,13 @@ and the rendition specified by \fIwch\fP is ignored.
If the character part of \fIwch\fP is
a tab, newline, backspace or other control character,
the window is updated and the cursor moves as if \fBaddch\fR were called.
+.SS echo_wchar
.PP
The \fBecho_wchar\fP
function is functionally equivalent to a call to
\fBadd_wch\fP
followed by a call to
-\fBrefresh\fP.
+\fBrefresh\fP(3X).
Similarly, the
\fBwecho_wchar\fP
is functionally equivalent to a call to
@@ -107,80 +114,104 @@ These symbols correspond to the same VT100 line-drawing set as
\fBaddch\fP(3X).
.PP
.TS
-l l l l
-_ _ _ _
-lw(1.5i) lw7 lw7 lw20.
-\fIName\fR \fIUnicode\fP \fIDefault\fR \fIDescription\fR
-WACS_BLOCK 0x25ae # solid square block
-WACS_BOARD 0x2592 # board of squares
-WACS_BTEE 0x2534 + bottom tee
-WACS_BULLET 0x00b7 o bullet
-WACS_CKBOARD 0x2592 : checker board (stipple)
-WACS_DARROW 0x2193 v arrow pointing down
-WACS_DEGREE 0x00b0 ' degree symbol
-WACS_DIAMOND 0x25c6 + diamond
-WACS_GEQUAL 0x2265 > greater-than-or-equal-to
-WACS_HLINE 0x2500 \- horizontal line
-WACS_LANTERN 0x2603 # lantern symbol
-WACS_LARROW 0x2190 < arrow pointing left
-WACS_LEQUAL 0x2264 < less-than-or-equal-to
-WACS_LLCORNER 0x2514 + lower left-hand corner
-WACS_LRCORNER 0x2518 + lower right-hand corner
-WACS_LTEE 0x2524 + left tee
-WACS_NEQUAL 0x2260 ! not-equal
-WACS_PI 0x03c0 * greek pi
-WACS_PLMINUS 0x00b1 # plus/minus
-WACS_PLUS 0x253c + plus
-WACS_RARROW 0x2192 > arrow pointing right
-WACS_RTEE 0x251c + right tee
-WACS_S1 0x23ba \- scan line 1
-WACS_S3 0x23bb \- scan line 3
-WACS_S7 0x23bc \- scan line 7
-WACS_S9 0x23bd \&_ scan line 9
-WACS_STERLING 0x00a3 f pound-sterling symbol
-WACS_TTEE 0x252c + top tee
-WACS_UARROW 0x2191 ^ arrow pointing up
-WACS_ULCORNER 0x250c + upper left-hand corner
-WACS_URCORNER 0x2510 + upper right-hand corner
-WACS_VLINE 0x2502 | vertical line
+l l l l l
+l l l l l
+_ _ _ _ _
+lw(1.5i) lw5 lw5 lw5 lw20.
+\fBACS\fR \fBUnicode\fP \fBASCII\fR \fBacsc\fP \fBGlyph\fR
+\fBName\fR \fBDefault\fP \fBDefault\fR \fBchar\fP \fBName\fR
+WACS_BLOCK 0x25ae # 0 solid square block
+WACS_BOARD 0x2592 # h board of squares
+WACS_BTEE 0x2534 + v bottom tee
+WACS_BULLET 0x00b7 o ~ bullet
+WACS_CKBOARD 0x2592 : a checker board (stipple)
+WACS_DARROW 0x2193 v . arrow pointing down
+WACS_DEGREE 0x00b0 ' f degree symbol
+WACS_DIAMOND 0x25c6 + ` diamond
+WACS_GEQUAL 0x2265 > > greater-than-or-equal-to
+WACS_HLINE 0x2500 \- q horizontal line
+WACS_LANTERN 0x2603 # i lantern symbol
+WACS_LARROW 0x2190 < , arrow pointing left
+WACS_LEQUAL 0x2264 < y less-than-or-equal-to
+WACS_LLCORNER 0x2514 + m lower left-hand corner
+WACS_LRCORNER 0x2518 + j lower right-hand corner
+WACS_LTEE 0x2524 + t left tee
+WACS_NEQUAL 0x2260 ! | not-equal
+WACS_PI 0x03c0 * { greek pi
+WACS_PLMINUS 0x00b1 # g plus/minus
+WACS_PLUS 0x253c + n plus
+WACS_RARROW 0x2192 > + arrow pointing right
+WACS_RTEE 0x251c + u right tee
+WACS_S1 0x23ba \- o scan line 1
+WACS_S3 0x23bb \- p scan line 3
+WACS_S7 0x23bc \- r scan line 7
+WACS_S9 0x23bd \&_ s scan line 9
+WACS_STERLING 0x00a3 f } pound-sterling symbol
+WACS_TTEE 0x252c + w top tee
+WACS_UARROW 0x2191 ^ \- arrow pointing up
+WACS_ULCORNER 0x250c + l upper left-hand corner
+WACS_URCORNER 0x2510 + k upper right-hand corner
+WACS_VLINE 0x2502 | x vertical line
.TE
.PP
The wide-character configuration of ncurses also defines symbols
-for thick- and double-lines:
+for thick lines (\fBacsc\fP \*(``J\*('' to \*(``V\*(''):
+.TS
+l l l l l
+l l l l l
+_ _ _ _ _
+lw(1.5i) lw5 lw5 lw5 lw20.
+\fBACS\fR \fBUnicode\fP \fBASCII\fR \fBacsc\fP \fBGlyph\fR
+\fBName\fR \fBDefault\fP \fBDefault\fR \fBchar\fP \fBName\fR
+WACS_T_BTEE 0x253b + V thick tee pointing up
+WACS_T_HLINE 0x2501 - Q thick horizontal line
+WACS_T_LLCORNER 0x2517 + M thick lower left corner
+WACS_T_LRCORNER 0x251b + J thick lower right corner
+WACS_T_LTEE 0x252b + T thick tee pointing right
+WACS_T_PLUS 0x254b + N thick large plus
+WACS_T_RTEE 0x2523 + U thick tee pointing left
+WACS_T_TTEE 0x2533 + W thick tee pointing down
+WACS_T_ULCORNER 0x250f + L thick upper left corner
+WACS_T_URCORNER 0x2513 + K thick upper right corner
+WACS_T_VLINE 0x2503 | X thick vertical line
+.TE
+.PP
+and for double-lines (\fBacsc\fP \*(``A\*('' to \*(``I\*(''):
.PP
.TS
-l l l l
-_ _ _ _
-lw(1.5i) lw7 lw7 lw20.
-\fIName\fR \fIUnicode\fP \fIDefault\fR \fIDescription\fR
-WACS_T_ULCORNER 0x250f + thick upper left corner
-WACS_T_LLCORNER 0x2517 + thick lower left corner
-WACS_T_URCORNER 0x2513 + thick upper right corner
-WACS_T_LRCORNER 0x251b + thick lower right corner
-WACS_T_LTEE 0x252b + thick tee pointing right
-WACS_T_RTEE 0x2523 + thick tee pointing left
-WACS_T_BTEE 0x253b + thick tee pointing up
-WACS_T_TTEE 0x2533 + thick tee pointing down
-WACS_T_HLINE 0x2501 - thick horizontal line
-WACS_T_VLINE 0x2503 | thick vertical line
-WACS_T_PLUS 0x254b + thick large plus or crossover
-WACS_D_ULCORNER 0x2554 + double upper left corner
-WACS_D_LLCORNER 0x255a + double lower left corner
-WACS_D_URCORNER 0x2557 + double upper right corner
-WACS_D_LRCORNER 0x255d + double lower right corner
-WACS_D_RTEE 0x2563 + double tee pointing left
-WACS_D_LTEE 0x2560 + double tee pointing right
-WACS_D_BTEE 0x2569 + double tee pointing up
-WACS_D_TTEE 0x2566 + double tee pointing down
-WACS_D_HLINE 0x2550 - double horizontal line
-WACS_D_VLINE 0x2551 | double vertical line
-WACS_D_PLUS 0x256c + double large plus or crossover
+l l l l l
+l l l l l
+_ _ _ _ _
+lw(1.5i) lw5 lw5 lw5 lw20.
+\fBACS\fR \fBUnicode\fP \fBASCII\fR \fBacsc\fP \fBGlyph\fR
+\fBName\fR \fBDefault\fP \fBDefault\fR \fBchar\fP \fBName\fR
+WACS_D_BTEE 0x2569 + H double tee pointing up
+WACS_D_HLINE 0x2550 - R double horizontal line
+WACS_D_LLCORNER 0x255a + D double lower left corner
+WACS_D_LRCORNER 0x255d + A double lower right corner
+WACS_D_LTEE 0x2560 + F double tee pointing right
+WACS_D_PLUS 0x256c + E double large plus
+WACS_D_RTEE 0x2563 + G double tee pointing left
+WACS_D_TTEE 0x2566 + I double tee pointing down
+WACS_D_ULCORNER 0x2554 + C double upper left corner
+WACS_D_URCORNER 0x2557 + B double upper right corner
+WACS_D_VLINE 0x2551 | Y double vertical line
.TE
+.PP
+Unicode's descriptions for these characters differs slightly from ncurses,
+by introducing the term \*(``light\*('' (along with less important details).
+Here are its descriptions for the normal, thick, and double horizontal lines:
+.bP
+U+2500 BOX DRAWINGS LIGHT HORIZONTAL
+.bP
+U+2501 BOX DRAWINGS HEAVY HORIZONTAL
+.bP
+U+2550 BOX DRAWINGS DOUBLE HORIZONTAL
.SH RETURN VALUE
.PP
All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success.
.PP
-Functions with a "mv" prefix first perform a cursor movement using
+Functions with a \*(``mv\*('' prefix first perform a cursor movement using
\fBwmove\fP, and return an error if the position is outside the window,
or if the window pointer is null.
.SH NOTES
@@ -213,7 +244,66 @@ SVr4 curses implementations defined their line-drawing symbols in
terms of intermediate symbols.
This implementation extends those symbols, providing new definitions
which are not in the SVr4 implementations.
+.PP
+Not all Unicode-capable terminals provide support for VT100-style
+alternate character sets (i.e., the \fBacsc\fP 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, HPUX, Solaris)
+use only the \fBacsc\fP character-mapping to provide this feature.
+As a result, those implementations can only use single-byte line-drawing
+characters.
+Ncurses 5.3 (2002) provided a table of Unicode values to solve these problems.
+NetBSD curses incorporated that table in 2010.
+.PP
+In this implementation, the Unicode values are used instead of the
+terminal description's \fBacsc\fP mapping as discussed in ncurses(3X)
+for the environment variable \fBNCURSES_NO_UTF8_ACS\fP.
+In contrast, for the same cases, the line-drawing characters
+described in \fBcurs_addch\fP(3X) will use only the ASCII default values.
+.PP
+Having Unicode available does not solve all of the problems with
+line-drawing for curses:
+.bP
+The closest Unicode equivalents to the
+VT100 graphics \fIS1\fP, \fIS3\fP, \fIS7\fP and \fIS9\fP
+frequently are not displayed at
+the regular intervals which the terminal used.
+.bP
+The \fIlantern\fP 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.
+.IP
+Lacking documentation, most readers assume that a \fIstorm lantern\fP
+was intended.
+But there are several possibilities, all with problems.
+.IP
+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.
+.IP
+Most \fIstorm lanterns\fP have a tapering glass chimney
+(to guard against tipping);
+some have a wire grid protecting the chimney.
+.IP
+For the tapering appearance, \[u2603] U+2603 was adequate.
+In use on a terminal, no one can tell what the image represents.
+Unicode calls it a snowman.
+.IP
+Others have suggested these alternatives:
+\[sc] U+00A7 (section mark),
+\[u0398] U+0398 (theta),
+\[u03A6] U+03A6 (phi),
+\[u03B4] U+03B4 (delta),
+\[u2327] U+2327 (x in a rectangle),
+\[u256C] U+256C (forms double vertical and horizontal), and
+\[u2612] U+2612 (ballot box with x).
.SH SEE ALSO
+.na
.PP
\fBcurses\fR(3X),
\fBcurs_addch\fR(3X),