Sign in
opensecura
/
3p
/
sel4
/
musllibc
/
2af3006b0ccf36ba9ac5123f539d577fd97c5350
/
.
/
src
/
stdio
/
ungetc.c
blob: 180673a47663ad57b11d3e6525c35cc23858939a [
file
]
#include
"stdio_impl.h"
int
ungetc
(
int
c
,
FILE
*
f
)
{
if
(
c
==
EOF
)
return
c
;
FLOCK
(
f
);
if
(!
f
->
rpos
)
__toread
(
f
);
if
(!
f
->
rpos
||
f
->
rpos
<=
f
->
buf
-
UNGET
)
{
FUNLOCK
(
f
);
return
EOF
;
}
*--
f
->
rpos
=
c
;
f
->
flags
&=
~
F_EOF
;
FUNLOCK
(
f
);
return
c
;
}