Nicholas J. Kain
7fb968e861
Use memccpy() and memcpy() instead of nstr{cpy,lcpy,cat}.
...
These are standard, either in POSIX or C23.
The semantics are slightly different as the error path does not
enforce null-termination in the function itself, so enforce that
by hand. As a nice side effect, this makes those error paths
easier to audit.
2022-08-27 04:11:12 -04:00
Nicholas J. Kain
e223b4c5a8
Use {O,SOCK}_CLOEXEC more consistently.
2022-08-13 00:42:27 -04:00
Nicholas J. Kain
9338aa37c2
Use libc snprintf and nstr{cpy,cat}.
...
We don't need async-safe snprintf anymore, and nstr{cpy,cat} are
more ergonomic and efficient where they can used.
2022-08-09 14:17:31 -04:00
Nicholas J. Kain
484a9c516b
Use stb_snprintf instead of libc snprintf.
...
This gives us consistent behavior and stb_snprintf is async signal
safe.
2022-03-07 20:42:00 -05:00
Nicholas J. Kain
7572e2eb8b
snprintf() truncation checks were one byte too conservative.
2022-02-25 06:18:08 -05:00
Nicholas J. Kain
1732bccccc
Relicense as MIT.
...
It's a lot more common than BSD 2-clause it is both compatible
and nearly identical in effect.
2022-02-06 20:05:29 -05:00
Nicholas J. Kain
8db8c5589d
Replace CMake with GNU Make.
...
There was previously support for both build systems, but ndhc is
undemanding and there is no point in maintaining a complex
CMake build.
2022-01-22 18:39:41 -05:00