utils-std version 0.0.6 - 2025-06-25 = Highlights = == Fixed == - printf(1) no longer loops on arguments when there's extra format conversion - cmp(1) now properly uses >1 for errorneous status == Added == - realpath(1): support for -q - sleep(1), timeout(1): support for concatenated durations (say 1d5m for 1 day, 5 minutes) == Changed == - rm(1): Bail out when target is root = Full changelog = Haelwenn (lanodan) Monnier (23): cmd/which: get rid of strdup memory allocation lib/strchrnul: new, for lib/offline_realpath and cmd/which cmd/which: handle unexpected errors from access(3) cmd/cmp: Use fstat(3) to avoid comparing the same file in case of sym/hard-links cmd/cmp: Use posix_fadvise(3) prior to comparing the contents cmd/cmp: Properly use >1 for errorneous status lib/fs: Only call file_sync at end of auto_fd_copy() cmd/*: add posix_fadvise(…SEQUENTIAL) between open() & auto_{fd,file}_copy() cmd/realpath: add support for -q cmd/sleep.1: Fix typo shell -> shall Add support for concatenated durations (say 1d5m) cmd/rm: Bail out when target is root format cmd/printf: no modulo on getting arguments test-cmd/tap.sh: Add # to printf format of test output cmd/printf: silence sign-comparison warnings cmd/expr.y: make sure malloc(0) doesn't happens cmd/join: make sure allocs of size 0 doesn't happens cmd/paste: formatting cmd/shuf: make sure alloc of size 0 doesn't happens Move libs for libutils.a into libutils .gitignore: /config.h & *.a Toss out reuse lint integration, it can just be a git hook instead