freopen: reset stream orientation (byte/wide) and encoding rule
authorRich Felker <dalias@aerifal.cx>
Wed, 17 Aug 2022 22:34:07 +0000 (18:34 -0400)
committerRich Felker <dalias@aerifal.cx>
Wed, 17 Aug 2022 22:34:07 +0000 (18:34 -0400)
commit37e18b7bf307fa4a8c745feebfcba54a0ba74f30
tree79a850217e80e1e6570cdf685b41b2d8c3c20252
parentbf99258564fd5b58974d93201ab61506eb8cb03e
freopen: reset stream orientation (byte/wide) and encoding rule

this is a requirement of the C language (orientation) and POSIX
(encoding rule) that was somehow overlooked.

we rely on the fact that the buffer pointers have been reset by
fflush, so that any future stdio operations on the stream will go
through the same code paths they would on a newly-opened file without
an orientation set, thereby setting the orientation as they should.
src/stdio/freopen.c