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