setcchar(3x) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

setcchar(3x)

curs_getcchar(3x)                Library calls               curs_getcchar(3x)

NAME
       getcchar,  setcchar  -  convert  between  a wide-character string and a
       curses complex character

SYNOPSIS
       #include <ncursesw/curses.h>

       int getcchar(const cchar_t * wch, wchar_t * wc,
             attr_t * attrs, short * pair, void * opts);
       int setcchar(cchar_t * wch, const wchar_t * wc,
             const attr_t attrs, short pair, const void * opts);

DESCRIPTION
       The curses complex character data type cchar_t is a structure type com‐
       prising a wide-character string, a set of attributes, and a color  pair
       identifier.   The cchar_t structure is opaque; do not attempt to access
       its members directly.  The library  provides  functions  to  manipulate
       this type.

   getcchar
       getcchar destructures a cchar_t into its components.

       If wc is not a null pointer, getcchar:

       •   stores  the  wide-character  string in the curses complex character
           wch into wc;

       •   stores the attributes in attrs; and

       •   stores the color pair identifier in pair.

       If wc is a null pointer, getcchar counts the wchar_t wide characters in
       wch, returns that value, and leaves attrs and pair unchanged.

   setcchar
       setcchar constructs a curses complex character wch from the  components
       wc,  attrs, and pair.  The wide-character string wch must be terminated
       with a null wide character L'\0' and must contain at most  one  spacing
       character,  which,  if present, must be the first wide character in the
       string.

       Up  to  CCHARW_MAX - 1   non-spacing   characters   may   follow   (see
       curs_variables(3X)).   ncurses ignores any additional non-spacing char‐
       acters.

       The string may contain a single control  character  instead.   In  that
       case, no non-spacing characters are allowed.

RETURN VALUE
       If getcchar is passed a null pointer as its wc argument, it returns the
       number  of  wide  characters for a given wch that it would store in wc,
       counting a trailing null wide character.  If getcchar is not  passed  a
       null  pointer  as  its wc argument, it returns OK on success and ERR on
       failure.

       In ncurses, getcchar returns ERR if either attrs  or  pair  is  a  null
       pointer and wc is not.

       setcchar returns OK on success and ERR on failure.

       In ncurses, setcchar returns ERR if

       •   wch is a null pointer,

       •   wc  starts  with  a (wide) control character and contains any other
           wide characters, or

       •   pair has a negative value.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:

       box; cbp-1 | cbp-1 l | l .  ATTRIBUTE TYPE ATTRIBUTE VALUE = Availabil‐
       ity   library/ncurses = Stability Uncommitted

NOTES
       wch may be a value stored by setcchar or another curses function with a
       writable cchar_t argument.  If wch is constructed by any  other  means,
       the library's behavior is unspecified.

       Source  code  for open source software components in Oracle Solaris can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This software was built from source available at:
       https://github.com/oracle/solaris-userland

       The original community source was downloaded from:
       https://invisible-mirror.net/archives/ncurses/cur‐
       rent/ncurses-6.5-20250614.tgz

       Further information about this software can be found on the open source
       community website at https://invisible-island.net/ncurses/.

EXTENSIONS
       X/Open Curses documents the opts argument as reserved for  future  use,
       saying  that it must be a null pointer.  The ncurses 6 ABI uses it with
       functions that have a color pair parameter to  support  extended  color
       pairs.

       •   In functions that assign colors, such as setcchar, if opts is not a
           null pointer, ncurses treats it as a pointer to int, and interprets
           it instead of the short pair parameter as a color pair identifier.

       •   In functions that retrieve colors, such as getcchar, if opts is not
           a  null  pointer, ncurses treats it as a pointer to int, and stores
           the retrieved color pair identifier there as well as in  the  short
           pair  parameter  (which  may  therefore undergo a narrowing conver‐
           sion).

PORTABILITY
       Applications employing ncurses extensions should condition their use on
       the visibility of the NCURSES_VERSION preprocessor macro.

       These functions are described in X/Open Curses Issue 4.   It  specifies
       no error conditions for them.

       X/Open  Curses does not detail the layout of the cchar_t structure, de‐
       scribing only its minimal required contents:

       •   a spacing wide character (wchar_t),

       •   at least five non-spacing wide characters (wchar_t; see below),

       •   attributes (at least 15 bits' worth, inferred  from  the  count  of
           specified WA_ constants),

       •   a  color pair identifier (at least 16 bits, inferred from the short
           type used to encode it).

       Non-spacing characters are optional, in the sense that zero or more may
       be stored in a cchar_t.  XOpen/Curses specifies a limit:

           Implementations may limit the number of non-spacing characters that
           can be associated with a spacing character, provided any  limit  is
           at least 5.

       Then-contemporary Unix implementations adhered to that limit.

       •   AIX 4  and  OSF/1 4 used the same declaration with a single spacing
           wide character c and an array of 5 non-spacing wide characters z.

       •   HP-UX 10 used an opaque structure of 28 bytes, large enough  for  6
           wchar_t values.

       •   Solaris xcurses uses a single array of 6 wchar_t values.

       ncurses defined its cchar_t in 1995 using 5 as the total of spacing and
       non-spacing  characters  (CCHARW_MAX).  That was probably due to a mis‐
       reading of the AIX 4 header files, because the X/Open  Curses  document
       was not generally available at that time.  Later (in 2002), this detail
       was  overlooked  when  work  began to implement the functions using the
       structure.

       In practice, a mere four  non-spacing  characters  may  seem  adequate.
       X/Open  Curses  documents  possible applications of non-spacing charac‐
       ters, including their use as ligatures (a feature apparently  not  sup‐
       ported  by  any  curses  implementation).   Unicode  does not limit the
       (analogous) number of combining characters in a grapheme cluster;  some
       applications may be affected.  ncurses can be compiled with a different
       CCHARW_MAX value; doing so alters the library's ABI.

HISTORY
       X/Open Curses Issue 4 (1995) initially specified these functions.

SEE ALSO
       curses(3X), curs_attr(3X), curs_color(3X), wcwidth(3)


ncurses 6.5                       2025-02-23                 curs_getcchar(3x)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3