X-Git-Url: http://ncurses.scripts.mit.edu/?a=blobdiff_plain;ds=sidebyside;f=doc%2Fhtml%2Fman%2Fcurs_add_wch.3x.html;h=c39713bdad0e16ef210c8987f7d8d1d228dadfee;hb=122d3739b3c11c83decc625d53f26fff6e825710;hp=2aa592000831bfa8795a951491370c9e0e710fd1;hpb=a6eb34d7fec8170a8715f9e53ca2f96452dd30dd;p=ncurses.git diff --git a/doc/html/man/curs_add_wch.3x.html b/doc/html/man/curs_add_wch.3x.html index 2aa59200..c39713bd 100644 --- a/doc/html/man/curs_add_wch.3x.html +++ b/doc/html/man/curs_add_wch.3x.html @@ -1,6 +1,7 @@ - -curs_add_wch 3x +curs_add_wch 3x 2023-10-07 ncurses 6.4 Library calls - + -

curs_add_wch 3x

+

curs_add_wch 3x 2023-10-07 ncurses 6.4 Library calls

-curs_add_wch(3x)                                              curs_add_wch(3x)
+curs_add_wch(3x)                 Library calls                curs_add_wch(3x)
 
 
 
 
 

NAME

        add_wch, wadd_wch, mvadd_wch, mvwadd_wch, echo_wchar, wecho_wchar - add
-       a complex character and rendition to a curses window, then advance  the
-       cursor
+       a curses complex character to a window and advance the cursor
 
 
 

SYNOPSIS

        #include <curses.h>
 
-       int add_wch( const cchar_t *wch );
-       int wadd_wch( WINDOW *win, const cchar_t *wch );
-       int mvadd_wch( int y, int x, const cchar_t *wch );
-       int mvwadd_wch( WINDOW *win, int y, int x, const cchar_t *wch );
+       int add_wch(const cchar_t *wch);
+       int wadd_wch(WINDOW *win, const cchar_t *wch);
+       int mvadd_wch(int y, int x, const cchar_t *wch);
+       int mvwadd_wch(WINDOW *win, int y, int x, const cchar_t *wch);
 
-       int echo_wchar( const cchar_t *wch );
-       int wecho_wchar( WINDOW *win, const cchar_t *wch );
+       int echo_wchar(const cchar_t *wch);
+       int wecho_wchar(WINDOW *win, const cchar_t *wch);
 
 
 

DESCRIPTION

 
 

add_wch

-       The  add_wch,  wadd_wch,  mvadd_wch,  and  mvwadd_wch functions put the
-       complex character wch into the given window at  its  current  position,
-       which  is then advanced.  These functions perform wrapping and special-
+       The add_wch, wadd_wch, mvadd_wch,  and  mvwadd_wch  functions  put  the
+       complex  character  wch  into the given window at its current position,
+       which is then advanced.  These functions perform wrapping and  special-
        character processing as follows:
 
-       o   If wch refers to a spacing character, then any  previous  character
-           at  that  location is removed.  A new character specified by wch is
-           placed at that location  with  rendition  specified  by  wch.   The
-           cursor then advances to the next spacing character on the screen.
+       o   If  wch  refers to a spacing character, then any previous character
+           at that location is removed.  A new character specified by  wch  is
+           placed  at  that  location  with  rendition  specified by wch.  The
+           cursor then advances after this spacing character, to  prepare  for
+           writing the next character on the screen.
+
+           The newly added spacing character is the base of the active complex
+           character.  Subsequent non-spacing characters can be combined  with
+           this base until another spacing character is written to the screen,
+           or the cursor is moved, e.g., using wmove.
 
-       o   If  wch  refers to a non-spacing character, all previous characters
-           at that location are preserved.  The non-spacing characters of  wch
-           are  added  to  the  spacing  complex  character, and the rendition
-           specified by wch is ignored.
+       o   If wch refers to a non-spacing character, it  is  appended  to  the
+           active complex character, retaining the previous characters at that
+           location.  The rendition specified by wch is ignored.
+
+           The cursor is not advanced after adding  a  non-spacing  character.
+           Subsequent calls to add non-spacing characters will update the same
+           position.
 
        o   If the character part of wch is a tab, newline, backspace or  other
            control character, the window is updated and the cursor moves as if
@@ -104,6 +113,7 @@
 
        ACS               Unicode    ASCII     acsc    Glyph
        Name              Default    Default   char    Name
+
        ------------------------------------------------------------------------
        WACS_BLOCK        0x25ae     #         0       solid square block
        WACS_BOARD        0x2592     #         h       board of squares
@@ -112,7 +122,6 @@
        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
@@ -170,6 +179,7 @@
        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
@@ -198,9 +208,9 @@
 
        The latter may be due to different causes:
 
-       o   If  scrollok 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
+       o   If  scrollok(3x)  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
 
        o   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
@@ -220,14 +230,16 @@
        4.  The defaults specified for line-drawing  characters  apply  in  the
        POSIX locale.
 
+
+

WACS Symbols

        X/Open  Curses  makes it clear that the WACS_ symbols should be defined
        as a pointer to cchar_t data, e.g., in the discussion of border_set.  A
        few implementations are problematic:
 
        o   NetBSD curses defines the symbols as a wchar_t within a cchar_t.
 
-       o   HPUX curses equates some of the ACS_ symbols to the analogous WACS_
-           symbols  as  if  the  ACS_  symbols  were  wide  characters.    The
+       o   HPUX curses equates some of the ACS_ symbols to the analogous WACS_
+           symbols  as  if  the  ACS_  symbols  were  wide  characters.    The
            misdefined  symbols  are the arrows and other symbols which are not
            used for line-drawing.
 
@@ -284,13 +296,31 @@
            and horizontal), and  U+2612 (ballot box with x).
 
 
+

Complex Characters

+       The complex character  type  cchar_t  can  store  more  than  one  wide
+       character  (wchar_t).   The  X/Open Curses description does not mention
+       this possibility, describing only the cases  where  wch  is  a  spacing
+       character or a non-spacing character.
+
+       This implementation assumes that wch is constructed using setcchar(3x),
+       and in turn that the result
+
+       o   contains at most one spacing character in the beginning of its list
+           of wide characters, and zero or more non-spacing characters or
+
+       o   may hold one non-spacing character.
+
+       In  the  latter  case,  ncurses  adds  the non-spacing character to the
+       active (base) spacing character.
+
+
 

SEE ALSO

-       curses(3x), curs_addch(3x), curs_attr(3x), curs_clear(3x),
-       curs_outopts(3x), curs_refresh(3x), putwc(3)
+       curses(3x),     curs_addch(3x),     curs_attr(3x),      curs_clear(3x),
+       curs_getcchar(3x), curs_outopts(3x), curs_refresh(3x), putwc(3)
 
 
 
-                                                              curs_add_wch(3x)
+ncurses 6.4                       2023-10-07                  curs_add_wch(3x)