Hi Linus, On Thu, Jul 10, 2025 at 08:30:59PM +0200, Alejandro Colomar wrote: > > IOW, why isn't this just > > > > #define sprintf_array(a,...) snprintf(a, ARRAY_SIZE(a), __VA_ARGS__) > > Agree. This is a better name for the kernel.
Oops, I misread. I thought you were implementing it as
#define sprintf_array(a, ...) sprintf_end(a, ENDOF(a), __VA_ARGS__)
So, I prefer my implementation because it returns NULL on truncation.
Compare usage:
if (linus_sprintf_array(a, "foo") >= ARRAY_SIZE(a))
goto fail;
if (alex_sprintf_array(a, "foo") == NULL)
goto fail;
Another approach would be to have
if (third_sprintf_array(a, "foo") < 0) // -E2BIG
goto fail;
Which was my first approach, but since we have sprintf_end(), let's just
reuse it.
Cheers,
Alex
--
<https://www.alejandro-colomar.es/>
signature.asc
Description: PGP signature
