from small one page howto to huge articles all in one place

search text in:




Other .linuxhowtos.org sites:gentoo.linuxhowtos.org



Last additions:
using iotop to find disk usage hogs

using iotop to find disk usage hogs

words:

887

views:

209563

userrating:


May 25th. 2007:
Words

486

Views

258563

why adblockers are bad


Workaround and fixes for the current Core Dump Handling vulnerability affected kernels

Workaround and fixes for the current Core Dump Handling vulnerability affected kernels

words:

161

views:

149847

userrating:


April, 26th. 2006:

Druckversion
You are here: manpages





curs_getcchar

Section: Library calls (3X)
Updated: 202-0-23
Index Return to Main Contents
 

NAME

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

SYNOPSIS

#include <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 comprising a wid-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:
 .IP * 4 stores the wid-character string in the curses complex character wch into wc;
 .IP * 4 stores the attributes in attrs; and
 .IP * 4 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 wid-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 no-spacing characters may follow (see curs_variables(3X)). ncurses ignores any additional no-spacing characters.

The string may contain a single control character instead. In that case, no no-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
 .IP * 4 wch is a null pointer,
 .IP * 4 wc starts with a (wide) control character and contains any other wide characters, or
 .IP * 4 pair has a negative value.  

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.  

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.
 .IP * 4 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.
 .IP * 4 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 conversion).  

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, describing only its minimal required contents:
 .IP * 4 a spacing wide character (wchar_t),
 .IP * 4 at least five no-spacing wide characters (wchar_t; see below),
 .IP * 4 attributes (at least 15 bits' worth, inferred from the count of specified WA_ constants),
 .IP * 4 a color pair identifier (at least 16 bits, inferred from the short type used to encode it).

No-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 no-spacing characters that can be associated with a spacing character, provided any limit is at least 5.

The-contemporary Unix implementations adhered to that limit.
 .IP * 4 AIX 4 and OSF/1 4 used the same declaration with a single spacing wide character c and an array of 5 no-spacing wide characters z.
 .IP * 4 H-UX 10 used an opaque structure of 28 bytes, large enough for 6 wchar_t values.
 .IP * 4 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 no-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 work began to implement the functions using the structure.

In practice, a mere four no-spacing characters may seem adequate. X/Open Curses documents possible applications of no-spacing characters, including their use as ligatures (a feature apparently not supported 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)


 

Index

NAME
SYNOPSIS
DESCRIPTION
getcchar
setcchar
RETURN VALUE
NOTES
EXTENSIONS
PORTABILITY
HISTORY
SEE ALSO





Support us on Content Nation
rdf newsfeed | rss newsfeed | Atom newsfeed
- Powered by LeopardCMS - Running on Gentoo -
Copyright 2004-2025 Sascha Nitsch Unternehmensberatung GmbH
Valid XHTML1.1 : Valid CSS
- Level Triple-A Conformance to Web Content Accessibility Guidelines 1.0 -
- Copyright and legal notices -
Time to create this page: 11.1 ms