1 /* Copyright (C) 1996 DJ Delorie, see COPYING.DJ for details */
2 /* Copyright (C) 1994 DJ Delorie, see COPYING.DJ for details */
3 #include <msvcrt/stdio.h>
4 #include <msvcrt/wchar.h>
5 #include <msvcrt/errno.h>
6 #include <msvcrt/internal/file.h>
9 int ungetc(int c, FILE *f)
11 if (!__validfp (f) || !OPEN4READING(f)) {
19 if (f->_ptr == NULL || f->_base == NULL)
22 if (f->_ptr == f->_base)
34 f->_flag |= _IOUNGETC;
42 ungetwc(wchar_t c, FILE *f)
44 if (!__validfp (f) || !OPEN4READING(f)) {
49 if (c == (wchar_t)EOF)
52 if (f->_ptr == NULL || f->_base == NULL)
55 if (f->_ptr == f->_base)
58 f->_ptr+=sizeof(wchar_t);
63 f->_cnt+=sizeof(wchar_t);
64 f->_ptr-=sizeof(wchar_t);
66 f->_flag |= _IOUNGETC;
67 *((wchar_t *)(f->_ptr)) = c;