kolibrios/programs/develop/libraries/kolibri-libc/source/stdio/ungetc.c
turbocat 1c24cac315 kolibri-libc:
[include]
 - ksys.h : fixed sruct name
 - string.h: set memcpy, memset, and memove as static for libtcc
 - stdio.h: added sscanf and ungetc
 - stdint.h: added int64 limits
[stdio]
fixed *scanf functions
added ungetc functon
[lib]
 - upated binaries
 - added libtcc.a for tcc optimization
[crt]
 - removed duplicate files
[samples]
 - added fasm libc.obj example
 - updated old examples 




git-svn-id: svn://kolibrios.org@8718 a494cfbc-eb01-0410-851d-a64ba20cac60
2021-05-09 22:12:43 +00:00

29 lines
542 B
C

#include <stdio.h>
#include <errno.h>
// non standard realization - support for virtually change ONLY ONE char
int ungetc(int c, FILE* file)
{
int res;
if(!file){
errno = EBADF;
return EOF;
}
if (file->mode != _STDIO_F_R){
errno = EACCES;
return EOF;
}
if (file->position > file->start_size || file->position == 0 || c == EOF || file->__ungetc_emu_buff != EOF)
{
errno = EOF;
return EOF;
}
file->__ungetc_emu_buff = c;
file->position--;
return c;
}