Sign in
mojo
/
mojo-tools
/
17e3b04429ce6ad836128e1ceffefd85493ec779
/
.
/
fusl
/
src
/
stdio
/
ungetc.c
blob: c0cb9cb4d706fcfa5627bb69edc18085e8e580c9 [
file
] [
log
] [
blame
]
#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
;
}