Follow-up to the metadata TOCTOU fix (#11972, PR #12439):
- Add a syscall-level regression guard in util/check-safe-traversal.sh:
under strace, head must read metadata from the open descriptor
(fstat/statx on the fd) and must not stat the path before opening it.
Verified this fails on the pre-fix code and passes after.
- Add an integration test asserting that an unreadable file produces an
error but no "==> name <==" header, matching GNU (the header is only
printed after a successful open).
- Fix a stray paren in the Windows-branch comment.
`pr -e0` on input containing a tab aborted with a remainder-by-zero panic
(`chunk.len() % expand_options.width` in `apply_expand_tab`). The
`-e[char][width]` parser accepted a width of `0` — and a negative width via
e.g. `-eX-5` — without validation, so the zero/negative reached the chunk
arithmetic.
Reject `width <= 0` while parsing `-e`, emitting the same invalid-argument
error GNU produces (`pr: '-e' extra characters or invalid number in the
argument: '0'`, exit 1) instead of crashing.