]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - doc/html/man/curs_getcchar.3x.html
ncurses 6.2 - patch 20210619
[ncurses.git] / doc / html / man / curs_getcchar.3x.html
index d6e961f4b93d00a978c768d26635211fcf087eca..0c78ef7470cacf7a6fbefaadea93388db41003bd 100644 (file)
@@ -1,7 +1,7 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
-<!-- 
+<!--
   ****************************************************************************
-  * Copyright (c) 2001-2003,2006 Free Software Foundation, Inc.              *
+  * Copyright 2019-2020,2021 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.8 2006/07/15 22:51:07 wcmbrine Exp @
+  * @Id: curs_getcchar.3x,v 1.25 2021/06/17 21:26:02 tom Exp @
 -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <HTML>
 <HEAD>
-<TITLE>curs_getcchar 3x</TITLE>
-<link rev=made href="mailto:bug-ncurses@gnu.org">
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
+<TITLE>curs_getcchar 3X</TITLE>
+<link rel="author" href="mailto:bug-ncurses@gnu.org">
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 </HEAD>
 <BODY>
-<H1>curs_getcchar 3x</H1>
-<HR>
+<H1 class="no-header">curs_getcchar 3X</H1>
 <PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>                                     <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
+<B><A HREF="curs_getcchar.3X.html">curs_getcchar(3X)</A></B>                                            <B><A HREF="curs_getcchar.3X.html">curs_getcchar(3X)</A></B>
 
 
 
 
-</PRE>
-<H2>NAME</H2><PRE>
-       <STRONG>getcchar</STRONG>,  <STRONG>setcchar</STRONG> - Get a wide character string and ren-
-       dition from a <STRONG>cchar_t</STRONG> or set a <STRONG>cchar_t</STRONG> from a wide-charac-
-       ter string
+</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
+       <B>getcchar</B>,  <B>setcchar</B>  - Get a wide character string and rendition from a
+       <B>cchar_t</B> or set a <B>cchar_t</B> from a wide-character string
 
 
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
-       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
+       <B>#include</B> <B>&lt;curses.h&gt;</B>
 
-       <STRONG>int</STRONG> <STRONG>getcchar(</STRONG>
-               <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wcval</EM><STRONG>,</STRONG>
-               <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>,</STRONG>
-               <STRONG>attr_t</STRONG> <STRONG>*</STRONG><EM>attrs</EM><STRONG>,</STRONG>
-               <STRONG>short</STRONG> <STRONG>*</STRONG><EM>color</EM><STRONG>_</STRONG><EM>pair</EM><STRONG>,</STRONG>
-               <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM> <STRONG>);</STRONG>
+       <B>int</B> <B>getcchar(</B>
+               <B>const</B> <B>cchar_t</B> <B>*</B><I>wcval</I><B>,</B>
+               <B>wchar_t</B> <B>*</B><I>wch</I><B>,</B>
+               <B>attr_t</B> <B>*</B><I>attrs</I><B>,</B>
+               <B>short</B> <B>*</B><I>color</I><B>_</B><I>pair</I><B>,</B>
+               <B>void</B> <B>*</B><I>opts</I> <B>);</B>
 
-       <STRONG>int</STRONG> <STRONG>setcchar(</STRONG>
-               <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wcval</EM><STRONG>,</STRONG>
-               <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>
+       <B>int</B> <B>setcchar(</B>
+               <B>cchar_t</B> <B>*</B><I>wcval</I><B>,</B>
+               <B>const</B> <B>wchar_t</B> <B>*</B><I>wch</I><B>,</B>
+               <B>const</B> <B>attr_t</B> <I>attrs</I><B>,</B>
+               <B>short</B> <I>color</I><B>_</B><I>pair</I><B>,</B>
+               <B>const</B> <B>void</B> <B>*</B><I>opts</I> <B>);</B>
 
 
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
-       The  <STRONG>getcchar</STRONG>  function  gets  a wide-character string and
-       rendition from a <STRONG>cchar_t</STRONG> argument.  When <EM>wch</EM> is not a null
-       pointer, the <STRONG>getcchar</STRONG> function does the following:
+</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
 
-       -    Extracts information from a <STRONG>cchar_t</STRONG> value <EM>wcval</EM>
+</PRE><H3><a name="h3-getcchar">getcchar</a></H3><PRE>
+       The <B>getcchar</B> function gets a wide-character string and rendition from a
+       <B>cchar_t</B>  argument.   When  <I>wch</I>  is  not  a  null  pointer, the <B>getcchar</B>
+       function does the following:
 
-       -    Stores  the  character  attributes  in  the  location
-            pointed to by <EM>attrs</EM>
+       <B>o</B>   Extracts information from a <B>cchar_t</B> value <I>wcval</I>
 
-       -    Stores the color-pair in the location pointed  to  by
-            <EM>color</EM><STRONG>_</STRONG><EM>pair</EM>
+       <B>o</B>   Stores the character attributes in the location pointed to by <I>attrs</I>
 
-       -    Stores  the  wide-character string, characters refer-
-            enced by <EM>wcval</EM>, into the array pointed to by <EM>wch</EM>.
+       <B>o</B>   Stores the color-pair in the location pointed to by <I>color</I><B>_</B><I>pair</I>
 
-       When <EM>wch</EM> is a null pointer, the <STRONG>getcchar</STRONG> function does the
-       following:
+       <B>o</B>   Stores the wide-character string, characters referenced  by  <I>wcval</I>,
+           into the array pointed to by <I>wch</I>.
 
-       -    Obtains  the  number of wide characters pointed to by
-            <EM>wcval</EM>
+       When <I>wch</I> is a null pointer, the <B>getcchar</B> function does the following:
 
-       -    Does not change  the  data  referenced  by  <EM>attrs</EM>  or
-            <EM>color</EM><STRONG>_</STRONG><EM>pair</EM>
+       <B>o</B>   Obtains the number of wide characters pointed to by <I>wcval</I>
 
-       The  <STRONG>setcchar</STRONG> function initializes the location pointed to
-       by <EM>wcval</EM> by using:
+       <B>o</B>   Does not change the data referenced by <I>attrs</I> or <I>color</I><B>_</B><I>pair</I>
 
-       -    The character attributes in <EM>attrs</EM>
 
-       -    The color pair in <EM>color</EM><STRONG>_</STRONG><EM>pair</EM>
+</PRE><H3><a name="h3-setcchar">setcchar</a></H3><PRE>
+       The  <B>setcchar</B>  function initializes the location pointed to by <I>wcval</I> by
+       using:
 
-       -    The wide-character string pointed  to  by  <EM>wch</EM>.   The
-            string  must be L'\0' terminated, contain at most one
-            character with strictly positive width, which must be
-            the  first,  and  contain  no  characters of negative
-            width.
+       <B>o</B>   The character attributes in <I>attrs</I>
 
+       <B>o</B>   The color pair in <I>color</I><B>_</B><I>pair</I>
 
-</PRE>
-<H2>NOTES</H2><PRE>
-       The <EM>opts</EM> argument is reserved for future use.   Currently,
-       an application must provide a null pointer as <EM>opts</EM>.
+       <B>o</B>   The wide-character string pointed to by <I>wch</I>.  The  string  must  be
+           L'\0' terminated, contain at most one spacing character, which must
+           be the first.
 
-       The  <EM>wcval</EM>  argument may be a value generated by a call to
-       <STRONG>setcchar</STRONG> or by a function that has a <STRONG>cchar_t</STRONG> output  argu-
-       ment.   If  <EM>wcval</EM>  is  constructed by any other means, the
-       effect is unspecified.
+           Up to <B>CCHARW_MAX</B>-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.
 
-</PRE>
-<H2>RETURN VALUES</H2><PRE>
-       When <EM>wch</EM> is a null pointer, <STRONG>getcchar</STRONG> returns the number of
-       wide characters referenced by <EM>wcval</EM>.
 
-       When  <EM>wch</EM>  is not a null pointer, <STRONG>getcchar</STRONG> returns <STRONG>OK</STRONG> upon
-       successful completion, and <STRONG>ERR</STRONG> otherwise.
+</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
+       X/Open Curses documents the <I>opts</I> 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:
 
-       Upon successful completion, <STRONG>setcchar</STRONG> returns  <STRONG>OK</STRONG>.   Other-
-       wise, it returns <STRONG>ERR</STRONG>.
+       <B>o</B>   For   functions  which modify the color, e.g., <B>setcchar</B>, if <I>opts</I> is
+           set it is treated as a pointer to <B>int</B>, and used to  set  the  color
+           pair instead of the <B>short</B> pair parameter.
 
+       <B>o</B>   For  functions which retrieve the color, e.g., <B>getcchar</B>, if <I>opts</I> is
+           set it is treated as a pointer to <B>int</B>, and  used  to  retrieve  the
+           color  pair  as  an  <B>int</B>  value,  in addition retrieving it via the
+           standard pointer to <B>short</B> parameter.
 
-</PRE>
-<H2>SEE ALSO</H2><PRE>
-       Functions:   <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,  <STRONG><A HREF="wcwidth.3x.html">wcwidth(3x)</A></STRONG>,  <STRONG><A HREF="curs_attr_get.3x.html">curs_attr_get(3x)</A></STRONG>,
-       <STRONG><A HREF="can_change_color.3x.html">can_change_color(3x)</A></STRONG>.
+
+</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
+       The <I>wcval</I> argument may be a value generated by a call to <B>setcchar</B> or by
+       a function that has a <B>cchar_t</B> output argument.  If <I>wcval</I> is constructed
+       by any other means, the effect is unspecified.
+
+
+</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>.
 
 
 
-                                                      <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
+                                                             <B><A HREF="curs_getcchar.3X.html">curs_getcchar(3X)</A></B>
 </PRE>
-<HR>
-<ADDRESS>
-Man(1) output converted with
-<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
-</ADDRESS>
+<div class="nav">
+<ul>
+<li><a href="#h2-NAME">NAME</a></li>
+<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
+<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
+<ul>
+<li><a href="#h3-getcchar">getcchar</a></li>
+<li><a href="#h3-setcchar">setcchar</a></li>
+</ul>
+</li>
+<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>
 </BODY>
 </HTML>