+
+</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
+ When <I>wch</I> is a null pointer, <B>getcchar</B> returns the number of wide
+ characters referenced by <I>wcval</I>, including one for a trailing null.
+
+ When <I>wch</I> is not a null pointer, <B>getcchar</B> returns <B>OK</B> upon successful
+ completion, and <B>ERR</B> otherwise.
+
+ Upon successful completion, <B>setcchar</B> returns <B>OK</B>. Otherwise, it returns
+ <B>ERR</B>.
+
+
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ The <B>CCHARW_MAX</B> symbol is specific to ncurses. X/Open Curses does not
+ provide details for the layout of the <B>cchar_t</B> structure. It tells what
+ data are stored in it:
+
+ <B>o</B> a spacing character (<B>wchar_t</B>, i.e., 32-bits).
+
+ <B>o</B> non-spacing characters (again, <B>wchar_t</B>'s).
+
+ <B>o</B> attributes (at least 16 bits, inferred from the various ACS- and
+ WACS-flags).
+
+ <B>o</B> color pair (at least 16 bits, inferred from the <B>unsigned</B> <B>short</B>
+ type).
+
+ The non-spacing characters are optional, in the sense that zero or more
+ may be stored in a <B>cchar_t</B>. 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:
+
+ <B>o</B> AIX 4 and OSF1 4 use the same declaration with an array of 5 non-
+ spacing characters <I>z</I> and a single spacing character <I>c</I>.
+
+ <B>o</B> HP-UX 10 uses an opaque structure with 28 bytes, which is large
+ enough for the 6 <B>wchar_t</B> values.
+
+ <B>o</B> Solaris xpg4 curses uses a single array of 6 <B>wchar_t</B> values.
+
+ This implementation's <B>cchar_t</B> was defined in 1995 using <B>5</B> for the total
+ of spacing and non-spacing characters (<B>CCHARW_MAX</B>). 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
+ functions 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.
+
+
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ Functions: <B><A HREF="curs_attr.3X.html">curs_attr(3X)</A></B>, <B><A HREF="curs_color.3X.html">curs_color(3X)</A></B>, <B><A HREF="curses.3X.html">curses(3X)</A></B>, <B>wcwidth(3)</B>.