X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=man%2Fcurs_add_wch.3x;h=ed97099f6a70643eb3753e55b37d47b2766f8aae;hp=adcf5e84f3c1cf54f97eb5b5d950a527308417c7;hb=5c2245b6fc619f8d96ce940281dfbf13b5b8900b;hpb=58552e8c761a70f8f0bd591fecdf576fa8216e3e diff --git a/man/curs_add_wch.3x b/man/curs_add_wch.3x index adcf5e84..ed97099f 100644 --- a/man/curs_add_wch.3x +++ b/man/curs_add_wch.3x @@ -26,8 +26,12 @@ .\" authorization. * .\"*************************************************************************** .\" -.\" $Id: curs_add_wch.3x,v 1.17 2017/01/07 19:25:15 tom Exp $ +.\" $Id: curs_add_wch.3x,v 1.23 2017/05/20 14:45:24 Sven.Joachim 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 .. @@ -109,80 +113,94 @@ 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 double-lines: .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 +and for thick lines: +.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 .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 @@ -215,6 +233,64 @@ 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