summaryrefslogtreecommitdiffstats
path: root/gl/vasnprintf.h
diff options
context:
space:
mode:
Diffstat (limited to 'gl/vasnprintf.h')
-rw-r--r--gl/vasnprintf.h41
1 files changed, 17 insertions, 24 deletions
diff --git a/gl/vasnprintf.h b/gl/vasnprintf.h
index 7658f505..f69649fb 100644
--- a/gl/vasnprintf.h
+++ b/gl/vasnprintf.h
@@ -1,18 +1,18 @@
1/* vsprintf with automatic memory allocation. 1/* vsprintf with automatic memory allocation.
2 Copyright (C) 2002-2004, 2007-2013 Free Software Foundation, Inc. 2 Copyright (C) 2002-2004, 2007-2023 Free Software Foundation, Inc.
3 3
4 This program is free software; you can redistribute it and/or modify 4 This file is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by 5 it under the terms of the GNU Lesser General Public License as
6 the Free Software Foundation; either version 3, or (at your option) 6 published by the Free Software Foundation; either version 2.1 of the
7 any later version. 7 License, or (at your option) any later version.
8 8
9 This program is distributed in the hope that it will be useful, 9 This file is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of 10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details. 12 GNU Lesser General Public License for more details.
13 13
14 You should have received a copy of the GNU General Public License along 14 You should have received a copy of the GNU Lesser General Public License
15 with this program; if not, see <http://www.gnu.org/licenses/>. */ 15 along with this program. If not, see <https://www.gnu.org/licenses/>. */
16 16
17#ifndef _VASNPRINTF_H 17#ifndef _VASNPRINTF_H
18#define _VASNPRINTF_H 18#define _VASNPRINTF_H
@@ -23,17 +23,8 @@
23/* Get size_t. */ 23/* Get size_t. */
24#include <stddef.h> 24#include <stddef.h>
25 25
26/* The __attribute__ feature is available in gcc versions 2.5 and later. 26/* Get _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD. */
27 The __-protected variants of the attributes 'format' and 'printf' are 27#include <stdio.h>
28 accepted by gcc versions 2.6.4 (effectively 2.7) and later.
29 We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because
30 gnulib and libintl do '#define printf __printf__' when they override
31 the 'printf' function. */
32#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
33# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
34#else
35# define _GL_ATTRIBUTE_FORMAT(spec) /* empty */
36#endif
37 28
38#ifdef __cplusplus 29#ifdef __cplusplus
39extern "C" { 30extern "C" {
@@ -67,10 +58,12 @@ extern "C" {
67# define asnprintf rpl_asnprintf 58# define asnprintf rpl_asnprintf
68# define vasnprintf rpl_vasnprintf 59# define vasnprintf rpl_vasnprintf
69#endif 60#endif
70extern char * asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...) 61extern char * asnprintf (char *restrict resultbuf, size_t *lengthp,
71 _GL_ATTRIBUTE_FORMAT ((__printf__, 3, 4)); 62 const char *format, ...)
72extern char * vasnprintf (char *resultbuf, size_t *lengthp, const char *format, va_list args) 63 _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 3, 4));
73 _GL_ATTRIBUTE_FORMAT ((__printf__, 3, 0)); 64extern char * vasnprintf (char *restrict resultbuf, size_t *lengthp,
65 const char *format, va_list args)
66 _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 3, 0));
74 67
75#ifdef __cplusplus 68#ifdef __cplusplus
76} 69}