ncurses 6.0 - patch 20170128
[ncurses.git] / doc / html / man / curs_get_wch.3x.html
1 <!-- 
2   ****************************************************************************
3   * Copyright (c) 2002-2012,2016 Free Software Foundation, Inc.              *
4   *                                                                          *
5   * Permission is hereby granted, free of charge, to any person obtaining a  *
6   * copy of this software and associated documentation files (the            *
7   * "Software"), to deal in the Software without restriction, including      *
8   * without limitation the rights to use, copy, modify, merge, publish,      *
9   * distribute, distribute with modifications, sublicense, and/or sell       *
10   * copies of the Software, and to permit persons to whom the Software is    *
11   * furnished to do so, subject to the following conditions:                 *
12   *                                                                          *
13   * The above copyright notice and this permission notice shall be included  *
14   * in all copies or substantial portions of the Software.                   *
15   *                                                                          *
16   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
17   * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
18   * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
19   * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
20   * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
21   * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
22   * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
23   *                                                                          *
24   * Except as contained in this notice, the name(s) of the above copyright   *
25   * holders shall not be used in advertising or otherwise to promote the     *
26   * sale, use or other dealings in this Software without prior written       *
27   * authorization.                                                           *
28   ****************************************************************************
29   * @Id: curs_get_wch.3x,v 1.9 2016/05/15 01:12:50 tom Exp @
30 -->
31 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
32 <HTML>
33 <HEAD>
34 <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
35 <meta name="generator" content="Manpage converted by man2html - see http://invisible-island.net/scripts/readme.html#others_scripts">
36 <TITLE>curs_get_wch 3x</TITLE>
37 <link rev=made href="mailto:bug-ncurses@gnu.org">
38 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
39 </HEAD>
40 <BODY>
41 <H1 class="no-header">curs_get_wch 3x</H1>
42 <PRE>
43 <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>                                       <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
44
45
46
47
48 </PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
49        <STRONG>get_wch</STRONG>, <STRONG>wget_wch</STRONG>, <STRONG>mvget_wch</STRONG>, <STRONG>mvwget_wch</STRONG>, <STRONG>unget_wch</STRONG> - get
50        (or push back) a wide character from curses terminal
51        keyboard
52
53
54 </PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
55        <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
56
57        <STRONG>int</STRONG> <STRONG>get_wch(wint_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
58        <STRONG>int</STRONG> <STRONG>wget_wch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>wint_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
59        <STRONG>int</STRONG> <STRONG>mvget_wch(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>wint_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
60        <STRONG>int</STRONG> <STRONG>mvwget_wch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>wint_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
61        <STRONG>int</STRONG> <STRONG>unget_wch(const</STRONG> <STRONG>wchar_t</STRONG> <EM>wch</EM><STRONG>);</STRONG>
62
63
64 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
65        The <STRONG>get_wch</STRONG>, <STRONG>wget_wch</STRONG>, <STRONG>mvget_wch</STRONG>, and <STRONG>mvwget_wch</STRONG> functions
66        read a character from the  terminal  associated  with  the
67        current  or specified window.  In no-delay mode, if no in-
68        put is waiting, the value <STRONG>ERR</STRONG> is returned.  In delay mode,
69        the  program waits until the system passes text through to
70        the program.  Depending on the setting of <STRONG>cbreak</STRONG>, this  is
71        after one character (cbreak mode), or after the first new-
72        line (nocbreak mode).  In  half-delay  mode,  the  program
73        waits  until  the  user types a character or the specified
74        timeout interval has elapsed.
75
76        Unless <STRONG>noecho</STRONG> has been set, these routines echo the  char-
77        acter into the designated window.
78
79        If  the window is not a pad and has been moved or modified
80        since the last call to <STRONG>wrefresh</STRONG>, <STRONG>wrefresh</STRONG> will  be  called
81        before another character is read.
82
83        If  <STRONG>keypad</STRONG>  is  enabled,  these  functions  respond to the
84        pressing of a function key by setting the  object  pointed
85        to by <EM>wch</EM> to the keycode assigned to the function key, and
86        returning <STRONG>KEY_CODE_YES</STRONG>.  If a character (such  as  escape)
87        that could be the beginning of a function key is received,
88        curses sets a timer.  If the  remainder  of  the  sequence
89        does  arrive  within  the  designated  time, curses passes
90        through the character; otherwise, curses returns the func-
91        tion  key  value.  For this reason, many terminals experi-
92        ence a delay between the time a user  presses  the  escape
93        key and the time the escape is returned to the program.
94
95        The  keycodes  returned by these functions are the same as
96        those returned by <STRONG>wgetch</STRONG>:
97
98        <STRONG>o</STRONG>   The predefined function keys are listed in  <STRONG>&lt;curses.h&gt;</STRONG>
99            as macros with values outside the range of 8-bit char-
100            acters.  Their names begin with <STRONG>KEY_</STRONG>.
101
102        <STRONG>o</STRONG>   Other (user-defined) function keys which  may  be  de-
103            fined using <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG> have no names, but also are
104            expected to have values outside  the  range  of  8-bit
105            characters.
106
107        The  <STRONG>unget_wch</STRONG> function pushes the wide character <EM>wch</EM> back
108        onto the head of the input queue, so the wide character is
109        returned by the next call to <STRONG>get_wch</STRONG>.  The pushback of one
110        character is guaranteed.  If the program  calls  <STRONG>unget_wch</STRONG>
111        too many times without an intervening call to <STRONG>get_wch</STRONG>, the
112        operation may fail.
113
114
115 </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
116        The header  file  <STRONG>&lt;curses.h&gt;</STRONG>  automatically  includes  the
117        header file <STRONG>&lt;stdio.h&gt;</STRONG>.
118
119        Applications should not define the escape key by itself as
120        a single-character function.
121
122        When using <STRONG>get_wch</STRONG>, <STRONG>wget_wch</STRONG>,  <STRONG>mvget_wch</STRONG>,  or  <STRONG>mvwget_wch</STRONG>,
123        applications should not use <STRONG>nocbreak</STRONG> mode and <STRONG>echo</STRONG> mode at
124        the same time.  Depending on the state of the  tty  driver
125        when  each character is typed, the program may produce un-
126        desirable results.
127
128        All functions except <STRONG>wget_wch</STRONG> and <STRONG>unget_wch</STRONG> may be macros.
129
130
131 </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
132        When <STRONG>get_wch</STRONG>, <STRONG>wget_wch</STRONG>, <STRONG>mvget_wch</STRONG>,  and  <STRONG>mvwget_wch</STRONG>  func-
133        tions  successfully report the pressing of a function key,
134        they return <STRONG>KEY_CODE_YES</STRONG>.  When they successfully report a
135        wide  character,  they  return <STRONG>OK</STRONG>.  Otherwise, they return
136        <STRONG>ERR</STRONG>.
137
138        Upon successful completion, <STRONG>unget_wch</STRONG> returns <STRONG>OK</STRONG>.   Other-
139        wise, the function returns <STRONG>ERR</STRONG>.
140
141        Functions  with a "mv" prefix first perform a cursor move-
142        ment using <STRONG>wmove</STRONG>, and return an error if the  position  is
143        outside the window, or if the window pointer is null.
144
145
146 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
147        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,   <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>,  <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>,  <STRONG>curs_in-</STRONG>
148        <STRONG><A HREF="curs_inopts.3x.html">opts(3x)</A></STRONG>, <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
149
150
151
152                                                        <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
153 </PRE>
154 <div class="nav">
155 <ul>
156 <li><a href="#h2-NAME">NAME</a></li>
157 <li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
158 <li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
159 <li><a href="#h2-NOTES">NOTES</a></li>
160 <li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
161 <li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
162 </ul>
163 </div>
164 </BODY>
165 </HTML>