ncurses 5.5
[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,2003 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.5 2003/05/10 20:33:49 jmc 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 <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>
49 <H2>NAME</H2><PRE>
50        <STRONG>get_wch</STRONG>,  <STRONG>wget_wch</STRONG>, <STRONG>mvget_wch</STRONG>, <STRONG>mvwget_wch</STRONG>, <STRONG>unget_wch</STRONG> - get
51        (or push back) a wide character from curses terminal  key-
52        board
53
54
55 </PRE>
56 <H2>SYNOPSIS</H2><PRE>
57        <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
58
59        <STRONG>int</STRONG> <STRONG>get_wch(wint_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
60        <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>
61        <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>
62        <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>
63        <STRONG>int</STRONG> <STRONG>unget_wch(const</STRONG> <STRONG>wchar_t</STRONG> <EM>wch</EM><STRONG>);</STRONG>
64
65
66 </PRE>
67 <H2>DESCRIPTION</H2><PRE>
68        The <STRONG>get_wch</STRONG>, <STRONG>wget_wch</STRONG>, <STRONG>mvget_wch</STRONG>, and <STRONG>mvwget_wch</STRONG> functions
69        read a character from the  terminal  associated  with  the
70        current  or  specified  window.   In  no-delay mode, if no
71        input is waiting, the value <STRONG>ERR</STRONG>  is  returned.   In  delay
72        mode,  the  program  waits  until  the  system passes text
73        through to the  program.   Depending  on  the  setting  of
74        <STRONG>cbreak</STRONG>,  this  is  after  one  character (cbreak mode), or
75        after the first newline (nocbreak  mode).   In  half-delay
76        mode,  the  program waits until the user types a character
77        or the specified timeout interval has elapsed.
78
79        Unless <STRONG>noecho</STRONG> has been set, these routines echo the  char-
80        acter into the designated window.
81
82        If  the window is not a pad and has been moved or modified
83        since the last call to <STRONG>wrefresh</STRONG>, <STRONG>wrefresh</STRONG> will  be  called
84        before another character is read.
85
86        If  <STRONG>keypad</STRONG>  is  enabled,  these  functions  respond to the
87        pressing of a function key by setting the  object  pointed
88        to  by  <EM>wch</EM>  to  the  corresponding  <STRONG>KEY_</STRONG> value defined in
89        <STRONG>&lt;curses.h&gt;</STRONG> and returning  <STRONG>KEY_CODE_YES</STRONG>.   If  a  character
90        (such as escape) that could be the beginning of a function
91        key is received, curses sets a timer.  If the remainder of
92        the  sequence  does  arrive  within  the  designated time,
93        curses passes through  the  character;  otherwise,  curses
94        returns  the  function  key  value.  For this reason, many
95        terminals experience a  delay  between  the  time  a  user
96        presses the escape key and the time the escape is returned
97        to the program.
98
99        The <STRONG>unget_wch</STRONG> function pushes the wide character <EM>wch</EM>  back
100        onto the head of the input queue, so the wide character is
101        returned by the next call to <STRONG>get_wch</STRONG>.  The pushback of one
102        character  is  guaranteed.  If the program calls <STRONG>unget_wch</STRONG>
103        too many times without an intervening call to <STRONG>get_wch</STRONG>, the
104        operation may fail.
105
106
107 </PRE>
108 <H2>NOTES</H2><PRE>
109        The  header  file  <STRONG>&lt;curses.h&gt;</STRONG>  automatically  includes the
110        header file <STRONG>&lt;stdio.h&gt;</STRONG>.
111
112        Applications should not define the escape key by itself as
113        a single-character function.
114
115        When  using  <STRONG>get_wch</STRONG>,  <STRONG>wget_wch</STRONG>, <STRONG>mvget_wch</STRONG>, or <STRONG>mvwget_wch</STRONG>,
116        applications should not use <STRONG>nocbreak</STRONG> mode and <STRONG>echo</STRONG> mode at
117        the  same  time.  Depending on the state of the tty driver
118        when each character is  typed,  the  program  may  produce
119        undesirable results.
120
121        All functions except <STRONG>wget_wch</STRONG> and <STRONG>unget_wch</STRONG> may be macros.
122
123
124 </PRE>
125 <H2>RETURN VALUES</H2><PRE>
126        When <STRONG>get_wch</STRONG>, <STRONG>wget_wch</STRONG>, <STRONG>mvget_wch</STRONG>,  and  <STRONG>mvwget_wch</STRONG>  func-
127        tions  successfully report the pressing of a function key,
128        they return <STRONG>KEY_CODE_YES</STRONG>.  When they successfully report a
129        wide  character,  they  return <STRONG>OK</STRONG>.  Otherwise, they return
130        <STRONG>ERR</STRONG>.
131
132        Upon successful completion, <STRONG>unget_wch</STRONG> returns <STRONG>OK</STRONG>.   Other-
133        wise, the function returns <STRONG>ERR</STRONG>.
134
135
136 </PRE>
137 <H2>SEE ALSO</H2><PRE>
138        <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>,
139        <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>
140
141
142
143                                                        <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
144 </PRE>
145 <HR>
146 <ADDRESS>
147 Man(1) output converted with
148 <a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
149 </ADDRESS>
150 </BODY>
151 </HTML>