Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
6607 serge 1
/*-
2
 * Copyright (c) 2002 Tim J. Robbins.
3
 * All rights reserved.
4
 *
5
 * Redistribution and use in source and binary forms, with or without
6
 * modification, are permitted provided that the following conditions
7
 * are met:
8
 * 1. Redistributions of source code must retain the above copyright
9
 *    notice, this list of conditions and the following disclaimer.
10
 * 2. Redistributions in binary form must reproduce the above copyright
11
 *    notice, this list of conditions and the following disclaimer in the
12
 *    documentation and/or other materials provided with the distribution.
13
 *
14
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24
 * SUCH DAMAGE.
25
 */
26
 
27
/*
28
FUNCTION
29
<>, <>---read a wide character from standard input
30
 
31
INDEX
32
	getwchar
33
INDEX
34
	getwchar_unlocked
35
INDEX
36
	_getwchar_r
37
INDEX
38
	_getwchar_unlocked_r
39
 
40
ANSI_SYNOPSIS
41
	#include 
42
	wint_t getwchar(void);
43
 
44
	#define _GNU_SOURCE
45
	#include 
46
	wint_t getwchar_unlocked(void);
47
 
48
	#include 
49
	wint_t _getwchar_r(struct _reent *<[reent]>);
50
 
51
	#include 
52
	wint_t _getwchar_unlocked_r(struct _reent *<[reent]>);
53
 
54
TRAD_SYNOPSIS
55
	#include 
56
	wint_t getwchar();
57
 
58
	#define _GNU_SOURCE
59
	#include 
60
	wint_t getwchar_unlocked();
61
 
62
	#include 
63
	wint_t _getwchar_r(<[reent]>)
64
	char * <[reent]>;
65
 
66
	#include 
67
	wint_t _getwchar_unlocked_r(<[reent]>)
68
	char * <[reent]>;
69
 
70
DESCRIPTION
71
<> function or macro is the wide character equivalent of
72
the <> function.  You can use <> to get the next
73
wide character from the standard input stream.  As a side effect,
74
<> advances the standard input's current position indicator.
75
 
76
<> is a non-thread-safe version of <>.
77
<> may only safely be used within a scope
78
protected by flockfile() (or ftrylockfile()) and funlockfile().  This
79
function may safely be used in a multi-threaded program if and only
80
if they are called while the invoking thread owns the (FILE *)
81
object, as is the case after a successful call to the flockfile() or
82
ftrylockfile() functions.  If threads are disabled, then
83
<> is equivalent to <>.
84
 
85
The alternate functions <<_getwchar_r>> and <<_getwchar_unlocked_r>> are
86
reentrant versions of the above.  The extra argument <[reent]> is a pointer to
87
a reentrancy structure.
88
 
89
RETURNS
90
The next wide character cast to <>, unless there is no more
91
data, or the host system reports a read error; in either of these
92
situations, <> returns <>.
93
 
94
You can distinguish the two situations that cause an <> result by
95
using `<>' and `<>'.
96
 
97
PORTABILITY
98
<> is required by C99.
99
 
100
<> is a GNU extension.
101
*/
102
 
103
#include <_ansi.h>
104
#include 
105
#include 
106
#include 
107
#include "local.h"
108
 
109
#undef getwchar
110
 
111
wint_t
112
_DEFUN (_getwchar_r, (ptr),
113
	struct _reent *ptr)
114
{
115
  return _fgetwc_r (ptr, stdin);
116
}
117
 
118
/*
119
 * Synonym for fgetwc(stdin).
120
 */
121
wint_t
122
_DEFUN_VOID (getwchar)
123
{
124
  _REENT_SMALL_CHECK_INIT (_REENT);
125
  return fgetwc (stdin);
126
}