-// SPDX-FileCopyrightText: 2023-2024, Alejandro Colomar <alx@kernel.org>
+// SPDX-FileCopyrightText: 2023-2025, Alejandro Colomar <alx@kernel.org>
// SPDX-License-Identifier: BSD-3-Clause
#include "string/sprintf/snprintf.h"
#include <stdarg.h>
-#include <stddef.h>
+#include <sys/types.h>
-extern inline int snprintf_(char *restrict s, size_t size,
+extern inline int snprintf_(char *restrict s, ssize_t size,
const char *restrict fmt, ...);
-extern inline int vsnprintf_(char *restrict s, size_t size,
+extern inline int vsnprintf_(char *restrict s, ssize_t size,
const char *restrict fmt, va_list ap);
#include <errno.h>
#include <stdarg.h>
-#include <stddef.h>
#include <stdio.h>
+#include <sys/types.h>
#include "attr.h"
#include "sizeof.h"
format_attr(printf, 3, 4)
-inline int snprintf_(char *restrict s, size_t size, const char *restrict fmt,
- ...);
+inline int snprintf_(char *restrict s, ssize_t size, const char *restrict fmt, ...);
format_attr(printf, 3, 0)
-inline int vsnprintf_(char *restrict s, size_t size, const char *restrict fmt,
+inline int vsnprintf_(char *restrict s, ssize_t size, const char *restrict fmt,
va_list ap);
inline int
-snprintf_(char *restrict s, size_t size, const char *restrict fmt, ...)
+snprintf_(char *restrict s, ssize_t size, const char *restrict fmt, ...)
{
int len;
va_list ap;
inline int
-vsnprintf_(char *restrict s, size_t size, const char *restrict fmt, va_list ap)
+vsnprintf_(char *restrict s, ssize_t size, const char *restrict fmt, va_list ap)
{
int len;
len = vsnprintf(s, size, fmt, ap);
if (len == -1)
return -1;
- if ((size_t) len >= size) {
+ if (len >= size) {
errno = E2BIG;
return -1;
}