Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
curs_getcchar(3X)					     curs_getcchar(3X)

NAME
       getcchar,  setcchar  - Get a wide character string and rendition	from a
       cchar_t or set a	cchar_t	from a wide-character string

SYNOPSIS
       #include	<curses.h>

       int getcchar(
	       const cchar_t *wcval,
	       wchar_t *wch,
	       attr_t *attrs,
	       short *color_pair,
	       void *opts );

       int setcchar(
	       cchar_t *wcval,
	       const wchar_t *wch,
	       const attr_t attrs,
	       short color_pair,
	       const void *opts	);

DESCRIPTION
   getcchar
       The getcchar function gets a wide-character string and rendition	from a
       cchar_t argument.  When wch is not a null pointer, the  getcchar	 func-
       tion does the following:

          Extracts information	from a cchar_t value wcval

          Stores the character	attributes in the location pointed to by attrs

          Stores the color-pair in the	location pointed to by color_pair

          Stores  the	wide-character string, characters referenced by	wcval,
	   into	the array pointed to by	wch.

       When wch	is a null pointer, the getcchar	function does the following:

          Obtains the number of wide characters pointed to by wcval

          Does	not change the data referenced by attrs	or color_pair

   setcchar
       The setcchar function initializes the location pointed to by  wcval  by
       using:

          The character attributes in attrs

          The color pair in color_pair

          The	wide-character	string	pointed	to by wch.  The	string must be
	   L'\0' terminated, contain at	most one spacing character, which must
	   be the first.

	   Up to CCHARW_MAX-1 nonspacing characters  may  follow.   Additional
	   nonspacing characters are ignored.

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

EXTENSIONS
       X/Open  Curses  documents the opts argument as reserved for future use,
       saying that it must be null.  This implementation uses  that  parameter
       in ABI 6	for the	functions which	have a color-pair parameter to support
       extended	color pairs:

          For	 functions  which modify the color, e.g., setcchar, if opts is
	   set it is treated as	a pointer to int, and used to  set  the	 color
	   pair	instead	of the short pair parameter.

          For functions which retrieve	the color, e.g., getcchar, if opts  is
	   set it is treated as	a pointer to int, and  used  to	 retrieve  the
	   color pair as an int	value, in addition retrieving it via the stan-
	   dard	pointer	to short parameter.

NOTES
       The wcval argument may be a value generated by a	call to	setcchar or by
       a function that has a cchar_t output argument.  If wcval	is constructed
       by any other means, the effect is unspecified.

RETURN VALUE
       When wch	is a null pointer, getcchar returns the	number of wide charac-
       ters referenced by wcval, including one for a trailing null.

       When  wch  is  not  a null pointer, getcchar returns OK upon successful
       completion, and ERR otherwise.

       Upon successful completion, setcchar returns OK.	 Otherwise, it returns
       ERR.

PORTABILITY
       The CCHARW_MAX symbol is	specific to ncurses.  X/Open Curses  does  not
       provide details for the layout of the cchar_t structure.	 It tells what
       data are	stored in it:

          a spacing character (wchar_t, i.e., 32-bits).

          non-spacing characters (again, wchar_t's).

          attributes  (at  least  16 bits, inferred from the various ACS- and
	   WACS-flags).

          color pair (at least	16 bits,  inferred  from  the  unsigned	 short
	   type).

       The 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.

       The Unix	implementations	at the time follow that	limit:

          AIX 4 and OSF1 4 use	the same declaration with an array of  5  non-
	   spacing characters z	and a single spacing character c.

          HP-UX 10  uses  an  opaque  structure with 28 bytes,	which is large
	   enough for the 6 wchar_t values.

          Solaris xpg4	curses uses a single array of 6	wchar_t	values.

       This implementation's cchar_t was defined in 1995 using 5 for the total
       of spacing and non-spacing characters (CCHARW_MAX).  That was  probably
       due  to	a  misreading  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 beginning	to implement the func-
       tions using the structure.

       In  practice, even four non-spacing characters may seem enough.	X/Open
       Curses documents	possible uses for  non-spacing	characters,  including
       using  them  for	ligatures between characters (a	feature	apparently not
       supported by any	curses implementation).	 Unicode does  not  limit  the
       (analogous) number of combining characters, so some applications	may be
       affected.

SEE ALSO
       Functions: curs_attr(3X), curs_color(3X), curses(3X), wcwidth(3).

							     curs_getcchar(3X)

NAME | SYNOPSIS | DESCRIPTION | EXTENSIONS | NOTES | RETURN VALUE | PORTABILITY | SEE ALSO

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=curs_getcchar&sektion=3&manpath=FreeBSD+14.1-RELEASE+and+Ports>

home | help