| Commit message (Expand) | Author | Files | Lines |
| 2015-06-13 | remove cancellation points in stdio•••commit 58165923890865a6ac042fafce13f440ee986fd9 added these optional
cancellation points on the basis that cancellable stdio could be
useful, to unblock threads stuck on stdio operations that will never
complete. however, the only way to ensure that cancellation can
achieve this is to violate the rules for side effects when
cancellation is acted upon, discarding knowledge of any partial data
transfer already completed. our implementation exhibited this behavior
and was thus non-conforming.
in addition to improving correctness, removing these cancellation
points moderately reduces code size, and should significantly improve
performance on i386, where sysenter/syscall instructions can be used
instead of "int $128" for non-cancellable syscalls.
| Rich Felker | 3 | -24/+3 |
| 2015-06-13 | fix idiom for setting stdio stream orientation to wide•••the old idiom, f->mode |= f->mode+1, was adapted from the idiom for
setting byte orientation, f->mode |= f->mode-1, but the adaptation was
incorrect. unless the stream was alreasdy set byte-oriented, this code
incremented f->mode each time it was executed, which would eventually
lead to overflow. it could be fixed by changing it to f->mode |= 1,
but upcoming changes will require slightly more work at the time of
wide orientation, so it makes sense to just call fwide. as an
optimization in the single-character functions, fwide is only called
if the stream is not already wide-oriented.
| Rich Felker | 6 | -6/+6 |
| 2015-06-13 | add printing of null %s arguments as "(null)" in wide printf•••this is undefined, but supported in our implementation of the normal
printf, so for consistency the wide variant should support it too.
| Rich Felker | 1 | -0/+1 |
| 2015-06-13 | add %m support to wide printf | Rich Felker | 1 | -0/+2 |