utils-std version 0.0.2 - 2025-03-06 Highlights: - new command: shuf - POSIX.1-2024 compatible make(1) required, bmake notably lacks $^ support - bootstrapping no longer relies on pre-generated bootstrap.sh - date(1) now supports: - new option: -I - %N (nanoseconds) and %:z (±00:00) formats - date(1) and touch(1) now supports parsing Email and asctime() date formats Haelwenn (lanodan) Monnier (44): More readable Makefile with building a lib/utils.a lib/reallocarray.h: FreeBSD now wants _POSIX_C_SOURCE undefined configure*: test linking as well, makes sure no lib is missing cmd/cut: consistently use fputwc in cut_c cmd/paste: define _POSIX_C_SOURCE cmd/whoami: add copyright header cmd/whoami: define _POSIX_C_SOURCE configure.d/sendfile_linux: use (off_t)0 instead of NULL configure*: disable cmd/join when fgetln isn't available .builds/archlinux.yml: new cmd/*.c: simply reset errno after setlocale(3) instead of throwing a warning test-cmd/chown.t: ArchLinux has :nobody but not :nogroup test-cmd/id.sh: drop `id -G` test cmd/shuf: new Use `for(int c; c = getopt;)` instead of `while((c = getopt))` cmd/shuf: switch from atoi to strtoul cmd/shuf: write correct amount of lines cmd/shuf: handle "-" argument test-cmd/shuf.sh: new test-cmd/shuf.sh: fix for BSDs cmd/date: use `return 1` instead of exit() cmd/touch: use `return 1` instead of exit() configure: generate config.h to properly invalidate after running ./bootstrap.sh cmd/uniq: Handle "-" argument test-cmd/uniq: Change from cram to tap.sh cmd/ln: support target-less usage cmd/chmod: add -F/--reference option cmd/printf: surround illegal format character in quotes bootstrap.sh: transform into bootstrap.mk cmd/date: get nanoseconds via timespec_get cmd/date: add support for -I option along with %N and %:z cmd/date: use clock_gettime instead of timespec_get cmd/date: initialise outstr and set it to empty string on empty format cmd/date: increase readability of %% handling test-cmd/{tap,mktemp}.sh: remplace 'echo -n' with 'printf %s' lib/iso_parse: Add support for email datetimes lib/iso_parse: Add support for asctime() datetimes remove leftover `c` declaration from move to for(;getopt;) cmd/split: fix fwrite error check cmd/uniq: explicit cast for `cur_shift > cur_len` configure.d/getopt_long.c: format cmd/mktemp.1: Add link to "Austin Group Defect 1616" standardization cmd/chmod: drop -F alias for --reference lib/iso_parse: ignore space before timezone offset in ISO datetimes