xref: /dflybsd-src/lib/libc/stdio/ungetwc.3 (revision 62f0872080cf6dbb5111fe3e9937501fd8e28c9c)
1*62f08720SJoerg Sonnenberger.\"	$NetBSD: ungetwc.3,v 1.7 2003/09/08 17:54:32 wiz Exp $
2*62f08720SJoerg Sonnenberger.\"	$DragonFly: src/lib/libc/stdio/ungetwc.3,v 1.1 2005/07/25 00:37:41 joerg Exp $
3*62f08720SJoerg Sonnenberger.\"
4*62f08720SJoerg Sonnenberger.\" Copyright (c) 1990, 1991, 1993
5*62f08720SJoerg Sonnenberger.\"	The Regents of the University of California.  All rights reserved.
6*62f08720SJoerg Sonnenberger.\"
7*62f08720SJoerg Sonnenberger.\" This code is derived from software contributed to Berkeley by
8*62f08720SJoerg Sonnenberger.\" Chris Torek and the American National Standards Committee X3,
9*62f08720SJoerg Sonnenberger.\" on Information Processing Systems.
10*62f08720SJoerg Sonnenberger.\"
11*62f08720SJoerg Sonnenberger.\" Redistribution and use in source and binary forms, with or without
12*62f08720SJoerg Sonnenberger.\" modification, are permitted provided that the following conditions
13*62f08720SJoerg Sonnenberger.\" are met:
14*62f08720SJoerg Sonnenberger.\" 1. Redistributions of source code must retain the above copyright
15*62f08720SJoerg Sonnenberger.\"    notice, this list of conditions and the following disclaimer.
16*62f08720SJoerg Sonnenberger.\" 2. Redistributions in binary form must reproduce the above copyright
17*62f08720SJoerg Sonnenberger.\"    notice, this list of conditions and the following disclaimer in the
18*62f08720SJoerg Sonnenberger.\"    documentation and/or other materials provided with the distribution.
19*62f08720SJoerg Sonnenberger.\" 3. Neither the name of the University nor the names of its contributors
20*62f08720SJoerg Sonnenberger.\"    may be used to endorse or promote products derived from this software
21*62f08720SJoerg Sonnenberger.\"    without specific prior written permission.
22*62f08720SJoerg Sonnenberger.\"
23*62f08720SJoerg Sonnenberger.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
24*62f08720SJoerg Sonnenberger.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25*62f08720SJoerg Sonnenberger.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26*62f08720SJoerg Sonnenberger.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
27*62f08720SJoerg Sonnenberger.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28*62f08720SJoerg Sonnenberger.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29*62f08720SJoerg Sonnenberger.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30*62f08720SJoerg Sonnenberger.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31*62f08720SJoerg Sonnenberger.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32*62f08720SJoerg Sonnenberger.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33*62f08720SJoerg Sonnenberger.\" SUCH DAMAGE.
34*62f08720SJoerg Sonnenberger.\"
35*62f08720SJoerg Sonnenberger.\"     @(#)ungetc.3	8.1 (Berkeley) 6/4/93
36*62f08720SJoerg Sonnenberger.\"
37*62f08720SJoerg Sonnenberger.Dd October 24, 2001
38*62f08720SJoerg Sonnenberger.Dt UNGETWC 3
39*62f08720SJoerg Sonnenberger.Os
40*62f08720SJoerg Sonnenberger.Sh NAME
41*62f08720SJoerg Sonnenberger.Nm ungetwc
42*62f08720SJoerg Sonnenberger.Nd un-get wide-character from input stream
43*62f08720SJoerg Sonnenberger.Sh LIBRARY
44*62f08720SJoerg Sonnenberger.Lb libc
45*62f08720SJoerg Sonnenberger.Sh SYNOPSIS
46*62f08720SJoerg Sonnenberger.In stdio.h
47*62f08720SJoerg Sonnenberger.In wchar.h
48*62f08720SJoerg Sonnenberger.Ft wint_t
49*62f08720SJoerg Sonnenberger.Fn ungetwc "wint_t wc" "FILE *stream"
50*62f08720SJoerg Sonnenberger.Sh DESCRIPTION
51*62f08720SJoerg SonnenbergerThe
52*62f08720SJoerg Sonnenberger.Fn ungetwc
53*62f08720SJoerg Sonnenbergerfunction pushes the wide-character
54*62f08720SJoerg Sonnenberger.Fa wc
55*62f08720SJoerg Sonnenberger(converted to an wchar_t)
56*62f08720SJoerg Sonnenbergerback onto the input stream pointed to by
57*62f08720SJoerg Sonnenberger.Fa stream .
58*62f08720SJoerg SonnenbergerThe pushed-backed wide-characters will be returned by subsequent reads on the
59*62f08720SJoerg Sonnenbergerstream (in reverse order).
60*62f08720SJoerg SonnenbergerA successful intervening call, using the same stream, to one of the file
61*62f08720SJoerg Sonnenbergerpositioning functions
62*62f08720SJoerg Sonnenberger.Xr fseek 3 ,
63*62f08720SJoerg Sonnenberger.Xr fsetpos 3 ,
64*62f08720SJoerg Sonnenbergeror
65*62f08720SJoerg Sonnenberger.Xr rewind 3
66*62f08720SJoerg Sonnenbergerwill discard the pushed back wide-characters.
67*62f08720SJoerg Sonnenberger.Pp
68*62f08720SJoerg SonnenbergerOne wide-character of push-back is guaranteed,
69*62f08720SJoerg Sonnenbergerbut as long as there is
70*62f08720SJoerg Sonnenbergersufficient memory, an effectively infinite amount of pushback is allowed.
71*62f08720SJoerg Sonnenberger.Pp
72*62f08720SJoerg SonnenbergerIf a character is successfully pushed-back,
73*62f08720SJoerg Sonnenbergerthe end-of-file indicator for the stream is cleared.
74*62f08720SJoerg Sonnenberger.Sh RETURN VALUES
75*62f08720SJoerg SonnenbergerThe
76*62f08720SJoerg Sonnenberger.Fn ungetwc
77*62f08720SJoerg Sonnenbergerfunction
78*62f08720SJoerg Sonnenbergerreturns
79*62f08720SJoerg Sonnenbergerthe wide-character pushed-back after the conversion, or
80*62f08720SJoerg Sonnenberger.Dv WEOF
81*62f08720SJoerg Sonnenbergerif the operation fails.
82*62f08720SJoerg SonnenbergerIf the value of the argument
83*62f08720SJoerg Sonnenberger.Fa c
84*62f08720SJoerg Sonnenbergercharacter equals
85*62f08720SJoerg Sonnenberger.Dv WEOF ,
86*62f08720SJoerg Sonnenbergerthe operation will fail and the stream will remain unchanged.
87*62f08720SJoerg Sonnenberger.Sh SEE ALSO
88*62f08720SJoerg Sonnenberger.Xr fseek 3 ,
89*62f08720SJoerg Sonnenberger.Xr getwc 3
90*62f08720SJoerg Sonnenberger.Sh STANDARDS
91*62f08720SJoerg SonnenbergerThe
92*62f08720SJoerg Sonnenberger.Fn ungetwc
93*62f08720SJoerg Sonnenbergerfunction conforms to
94*62f08720SJoerg Sonnenberger.St -isoC-99 .
95*62f08720SJoerg Sonnenberger.Sh BUGS
96*62f08720SJoerg SonnenbergerThe current implementation uses a fixed sized ungetwc-buffer.
97