ncurses 6.2 - patch 20200314
[ncurses.git] / doc / html / man / curs_getcchar.3x.html
index 34d4aae0e6dbd5f1b3aa72bb4fb8f6bf435b23d1..adee87eb87778cfc4e8a67777149076a1588e9a5 100644 (file)
@@ -1,6 +1,7 @@
 <!-- 
   ****************************************************************************
-  * Copyright (c) 2001-2015,2017 Free Software Foundation, Inc.              *
+  * Copyright 2019,2020 Thomas E. Dickey                                     *
+  * Copyright 2001-2015,2017 Free Software Foundation, Inc.                  *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_getcchar.3x,v 1.19 2017/11/18 23:47:37 tom Exp @
+  * @Id: curs_getcchar.3x,v 1.24 2020/02/02 23:34:34 tom Exp @
 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <HTML>
 <HEAD>
 <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
-<meta name="generator" content="Manpage converted by man2html - see http://invisible-island.net/scripts/readme.html#others_scripts">
+<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
 <TITLE>curs_getcchar 3x</TITLE>
-<link rev=made href="mailto:bug-ncurses@gnu.org">
+<link rel="author" href="mailto:bug-ncurses@gnu.org">
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 </HEAD>
 <BODY>
@@ -65,7 +66,7 @@
                <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>,</STRONG>
                <STRONG>const</STRONG> <STRONG>attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG>
                <STRONG>short</STRONG> <EM>color</EM><STRONG>_</STRONG><EM>pair</EM><STRONG>,</STRONG>
-               <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM> <STRONG>);</STRONG>
+               <STRONG>const</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM> <STRONG>);</STRONG>
 
 
 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
        <STRONG>ERR</STRONG>.
 
 
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+       The  <STRONG>CCHARW_MAX</STRONG>  symbol is specific to ncurses.  X/Open Curses does not
+       provide details for the layout of the <STRONG>cchar_t</STRONG> structure.  It tells what
+       data are stored in it:
+
+       <STRONG>o</STRONG>   a spacing character (<STRONG>wchar_t</STRONG>, i.e., 32-bits).
+
+       <STRONG>o</STRONG>   non-spacing characters (again, <STRONG>wchar_t</STRONG>'s).
+
+       <STRONG>o</STRONG>   attributes  (at  least  16 bits, inferred from the various ACS- and
+           WACS-flags).
+
+       <STRONG>o</STRONG>   color pair (at least 16 bits,  inferred  from  the  <STRONG>unsigned</STRONG>  <STRONG>short</STRONG>
+           type).
+
+       The non-spacing characters are optional, in the sense that zero or more
+       may be stored in a <STRONG>cchar_t</STRONG>.  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:
+
+       <STRONG>o</STRONG>   AIX 4 and OSF1 4 use the same declaration with an array of  5  non-
+           spacing characters <EM>z</EM> and a single spacing character <EM>c</EM>.
+
+       <STRONG>o</STRONG>   HP-UX 10  uses  an  opaque  structure with 28 bytes, which is large
+           enough for the 6 <STRONG>wchar_t</STRONG> values.
+
+       <STRONG>o</STRONG>   Solaris xpg4 curses uses a single array of 6 <STRONG>wchar_t</STRONG> values.
+
+       This implementation's <STRONG>cchar_t</STRONG> was defined in 1995 using <STRONG>5</STRONG> for the total
+       of  spacing and non-spacing characters (<STRONG>CCHARW_MAX</STRONG>).  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.
+
+
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        Functions: <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG>wcwidth(3)</STRONG>.
 
 <li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
 <li><a href="#h2-NOTES">NOTES</a></li>
 <li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
+<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
 <li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
 </ul>
 </div>