diff --git a/src/ds/error.c b/src/ds/error.c index 1a48bab..a6112ec 100644 --- a/src/ds/error.c +++ b/src/ds/error.c @@ -2,6 +2,7 @@ // SPDX license identifier: MIT #include +#include void *error_reserved_for_error = NULL; @@ -20,37 +21,25 @@ void error_term() { size_t error_to_string(char *buf, size_t size, Error e, bool destroy) { size_t written = 0; if (e.has_location) { - size_t left = size > written ? size - written : 0; - written += snprintf(buf + written, left, "%s:%zu: ", e.file, e.line); + written += snprintf(buf + written, sub_clamped(size, written), "%s:%zu: ", e.file, e.line); } switch (e.kind) { - case ErrorNone: { - size_t left = size > written ? size - written : 0; - written += snprintf(buf + written, left, "Success"); - } + case ErrorNone: + written += snprintf(buf + written, sub_clamped(size, written), "Success"); break; - case ErrorOutOfMemory: { - size_t left = size > written ? size - written : 0; - written += snprintf(buf + written, left, "Out of memory"); - } + case ErrorOutOfMemory: + written += snprintf(buf + written, sub_clamped(size, written), "Out of memory"); break; case ErrorString: { - size_t left = size > written ? size - written : 0; - written += snprintf(buf + written, left, "%s", e.str); - if (e.str_on_heap && destroy) - free(e.str); + written += snprintf(buf + written, sub_clamped(size, written), "%s", e.str); + if (e.str_on_heap && destroy) + free(e.str); } break; } if (e.has_annex) { - { - size_t left = size > written ? size - written : 0; - written += snprintf(buf + written, left, ": "); - } - { - size_t left = size > written ? size - written : 0; - written += error_to_string(buf + written, left, *e.annex, destroy); - } + written += snprintf(buf + written, sub_clamped(size, written), ": "); + written += error_to_string(buf + written, sub_clamped(size, written), *e.annex, destroy); if (destroy) free(e.annex); } diff --git a/src/ds/fmt.c b/src/ds/fmt.c index b467848..f63ae4e 100644 --- a/src/ds/fmt.c +++ b/src/ds/fmt.c @@ -4,6 +4,7 @@ #define GENERIC_IMPL_STATIC #include +#include #include #include @@ -531,7 +532,7 @@ size_t _fmtsv(const char *restrict file, size_t line, char *restrict buf, size_t }; _fmtcv(file, line, &ctx, format, args); if (size > 0) - buf[ctxs.written < size - 1 ? ctxs.written : size - 1] = 0; + buf[min(ctxs.written, size - 1)] = 0; return ctxs.written; }