Files
shadow/lib
Alejandro ColomarandIker Pedrosa ce4c4d4ad5 lib/string/sprintf.h: Add SNPRINTF() macro
It wraps snprintf(3) so that it performs some steps that one might
forget, or might be prone to accidents:

-  It calculates the size of the destination buffer, and makes sure it's
   an array (otherwise, using sizeof(s) would be very bad).

-  It calculates if there's truncation or an error, returning -1 if so.

BTW, this macro doesn't have any issues of double evaluation, because
sizeof() doesn't evaluate its argument (unless it's a VLA, but then the
static_assert(3) within NITEMS() makes sure VLAs are not allowed).

This macro is very similar to STRTCPY(), defined in
<lib/string/strtcpy.h>.

Signed-off-by: Alejandro Colomar <alx@kernel.org>
2023-12-15 16:41:47 +01:00
..
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-02-24 12:44:14 -06:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-12-14 07:40:40 -06:00
2022-12-29 13:58:49 -06:00
2023-12-14 07:40:40 -06:00
2023-12-13 09:08:12 -06:00
2023-08-31 08:55:26 +02:00
2021-12-23 19:36:50 -06:00
2021-12-23 19:36:50 -06:00
2023-12-14 07:40:40 -06:00
2023-08-31 08:55:26 +02:00
2023-03-31 09:53:40 -05:00
2021-12-23 19:36:50 -06:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2021-12-23 19:36:50 -06:00
2023-09-01 09:39:23 +02:00
2021-12-23 19:36:50 -06:00
2023-06-08 09:05:39 -05:00
2023-08-31 08:55:26 +02:00
2023-12-14 07:40:40 -06:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2022-12-22 11:43:29 +01:00
2023-12-14 07:40:40 -06:00
2023-09-01 09:39:23 +02:00
2023-08-31 08:55:26 +02:00
2023-09-01 09:39:23 +02:00
2023-08-31 08:55:26 +02:00
2022-12-22 11:43:29 +01:00
2023-12-13 10:06:34 -06:00
2023-08-31 08:55:26 +02:00
2021-12-23 19:36:50 -06:00
2022-05-24 07:49:11 -05:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2021-12-23 19:36:50 -06:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2022-05-24 07:49:11 -05:00
2023-09-01 09:39:23 +02:00
2023-08-31 08:55:26 +02:00
2023-06-08 09:05:39 -05:00
2022-12-22 11:43:29 +01:00
2021-12-23 19:36:50 -06:00
2023-02-09 10:03:03 -06:00
2023-02-09 10:03:03 -06:00
2021-12-23 19:36:50 -06:00
2023-01-26 22:44:39 -06:00
2023-09-01 09:39:23 +02:00
2023-06-08 09:05:39 -05:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2010-03-18 19:23:00 +00:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-12-14 07:40:40 -06:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00