Minor manual cleanup - inlined many format args. This makes the code a bit more readable, and helps spot a few inefficiencies and possible bugs. Note that `&foo` in a `format!` parameter results in a 6% extra performance cost, and does not get inlined by the compiler (yet).
It's not totally clear why they sometimes work, sometimes fail,
but it does appear that running `stat` on `/dev/stdin` is perhaps
not the most reliable approach.
A likely more solid approach is described in #7583.
Support precision when rendering the time of last data modification
with `stat`. For example, after this commit
$ stat --printf='%.1Y\n' f
1668645806.7
Previously, the precision in the format specification was
ignored. This is implemented with a custom renderer because GNU `stat`
seems to truncate the number as opposed to rounding the number as
would happen when using `format!` with a specified number of digits of
precision.
Fixes#3233
* stat: fix the quotes when dealing with %N
and other formats
should fix
tests/stat/stat-fmt.sh
* stats: use an enum instead of a string
* stats: split the functions into smaller functions
* stat: handle byte as a format for better display
* stat: handle error better. should make tests/stat/stat-printf.pl pass
* stat: Some escape sequences are non-standard
* Fix tests
* Take comments into account
* stat: should fail without arguments #5928
* style and lint issue stat: should fail without arguments #5928
* style and lint issue stat: should fail without arguments #5928
* style and lint 2 issue stat: should fail without arguments #5928
---------
Co-authored-by: biplab5464 <biplab5464@outlook.com>