void clearerr ( FILE * fp /* stream to clear EOF and ERROR flags for */ ) { __sclearerr(fp); }
void clearerr(FILE *fp) { FLOCKFILE(fp); __sclearerr(fp); FUNLOCKFILE(fp); }
wint_t __ungetwc(wint_t wc, FILE *fp, locale_t locale) { struct wchar_io_data *wcio; char buf[MB_LEN_MAX]; size_t len; struct xlocale_ctype *l = XLOCALE_CTYPE(locale); if (wc == WEOF) return (WEOF); _SET_ORIENTATION(fp, 1); wcio = WCIO_GET(fp); if (wcio == 0) { errno = ENOMEM; /* XXX */ return (WEOF); } len = l->__wcrtomb(buf, wc, &wcio->wcio_mbstate_in); if (len == (size_t)-1) return (WEOF); while (len--) { if (__ungetc(buf[len], fp) == EOF) return (WEOF); } __sclearerr(fp); return wc; }
void rewind(FILE *fp) { _DIAGASSERT(fp != NULL); FLOCKFILE(fp); (void) fseek(fp, 0L, SEEK_SET); __sclearerr(fp); FUNLOCKFILE(fp); }
wint_t ungetwc(wint_t wc, FILE *fp) { struct wchar_io_data *wcio; _DIAGASSERT(fp); if (wc == WEOF) return WEOF; FLOCKFILE(fp); _SET_ORIENTATION(fp, 1); /* * XXX since we have no way to transform a wchar string to * a char string in reverse order, we can't use ungetc. */ /* XXX should we flush ungetc buffer? */ wcio = WCIO_GET(fp); if (wcio == 0) { FUNLOCKFILE(fp); errno = ENOMEM; /* XXX */ return WEOF; } if (wcio->wcio_ungetwc_inbuf >= WCIO_UNGETWC_BUFSIZE) { FUNLOCKFILE(fp); return WEOF; } wcio->wcio_ungetwc_buf[wcio->wcio_ungetwc_inbuf++] = (wchar_t)wc; __sclearerr(fp); FUNLOCKFILE(fp); return wc; }
void clearerr_unlocked(FILE* fp) { return __sclearerr(fp); }
void pd_clearerr_unlocked_p(FILEpd *fp) { __sclearerr(fp); }