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