diff --git a/lib/Makefile.am b/lib/Makefile.am index e76e7446a9..568049e77f 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -202,6 +202,8 @@ libshadow_la_SOURCES = \ string/strcpy/strncpy.h \ string/strcpy/strtcpy.c \ string/strcpy/strtcpy.h \ + string/strdup/strdupa.c \ + string/strdup/strdupa.h \ string/strdup/strndupa.c \ string/strdup/strndupa.h \ string/strdup/xstrdup.c \ diff --git a/lib/string/strdup/strdupa.c b/lib/string/strdup/strdupa.c new file mode 100644 index 0000000000..0263f8468d --- /dev/null +++ b/lib/string/strdup/strdupa.c @@ -0,0 +1,7 @@ +// SPDX-FileCopyrightText: 2025, Alejandro Colomar +// SPDX-License-Identifier: BSD-3-Clause + + +#include + +#include "string/strdup/strdupa.h" diff --git a/lib/string/strdup/strdupa.h b/lib/string/strdup/strdupa.h new file mode 100644 index 0000000000..bb7901fab2 --- /dev/null +++ b/lib/string/strdup/strdupa.h @@ -0,0 +1,18 @@ +// SPDX-FileCopyrightText: 2025, Alejandro Colomar +// SPDX-License-Identifier: BSD-3-Clause + + +#ifndef SHADOW_INCLUDE_LIB_STRING_STRDUP_STRDUPA_H_ +#define SHADOW_INCLUDE_LIB_STRING_STRDUP_STRDUPA_H_ + + +#include + +#include + + +// strdupa(3), but make sure that the argument is a string literal. +#define STRDUPA(s) strdupa("" s "") + + +#endif // include guard