aboutsummaryrefslogtreecommitdiff
path: root/stdio-common/tst-ungetc-fflush.c
AgeCommit message (Collapse)AuthorFilesLines
2025-01-28Fix fflush after ungetc on input file (bug 5994)Joseph Myers1-0/+64
As discussed in bug 5994 (plus duplicates), POSIX requires fflush after ungetc to discard pushed-back characters but preserve the file position indicator. For this purpose, each ungetc decrements the file position indicator by 1; it is unspecified after ungetc at the start of the file, and after ungetwc, so no special handling is needed for either of those cases. This is fixed with appropriate logic in _IO_new_file_sync. I haven't made any attempt to test or change things in this area for the "old" functions; the case of files using mmap is addressed in a subsequent patch (and there seem to be no problems in this area with files opened with fmemopen). Tested for x86_64.