* libstdbuf: remove crash macro
* libstdbuf: remove uucore macro/struct and use gnu messages
* libstdbuf: remove crash macro
* libstdbuf: remove uucore macro/struct and use gnu messages
* libstdbuf: remove :? from print by printing file descriptor instead of file
* merge main into libstdbuf-remove-crash-macro
* libstdbuf: remove uucore from dependencies
Correct the behavior of `dd` so that the termination condition of the
main loop uses the number of bytes read, not the number of bytes
written, when the `count` command-line option is given in bytes
instead of blocks.
* du: very rough draft of continuously printing output
* du: clean up printing logic, still needs some polishing
* du: gracefully handle case where `du` returns no `Stat`s
* du: print output using separate thread
* du: clean up print thread implementation
* du: send ownership of `Stat`s to printing thread as soon as `du` is done with them
* du: add basic error handling for communication between threads, use `StatPrinter` to handle printing thread logic
* du: move printing grand total into `StatPrinter`, and move initialization of printing-related variables into `StatPrinter::new`
* du: clean up calculation of `convert_size` function, and separate printing a single stat our into its own method in `StatPrinter`
* du: have printing thread handle printing IO-related errors, to ensure error messages and regular output message are written one at a time
* du: add comment explaining print thread, remove outdated comments and clippy allows
* du: restore clippy allows for cognitive complexity
---------
Co-authored-by: clint <cteece3@gatech.edu>
Issue 5576 reported a bug in expr, found by the fuzzer. The problem
turns out to be with the regex match operator `:`, which is defined in
POSIX and the GNU manual to match the pattern only when it occurs at
the beginning of the string, i.e., the regex has an implicit `^`
prepended to it. We hadn't been doing that.