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>
12 int ungetc(int c, FILE *f)
14 if (!__validfp (f) || !OPEN4READING(f)) {
22 if (f->_ptr == NULL || f->_base == NULL)
25 if (f->_ptr == f->_base)
37 f->_flag |= _IOUNGETC;
48 ungetwc(wchar_t c, FILE *f)
50 if (!__validfp (f) || !OPEN4READING(f)) {
55 if (c == (wchar_t)EOF)
58 if (f->_ptr == NULL || f->_base == NULL)
61 if (f->_ptr == f->_base)
64 f->_ptr+=sizeof(wchar_t);
69 f->_cnt+=sizeof(wchar_t);
70 f->_ptr-=sizeof(wchar_t);
72 f->_flag |= _IOUNGETC;
73 *((wchar_t *)(f->_ptr)) = c;