Line data Source code
1 : /* -*- buffer-read-only: t -*- vi: set ro: */
2 : /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
3 : #line 1
4 : /* Formatted output to strings.
5 : Copyright (C) 1999, 2002, 2006-2008 Free Software Foundation, Inc.
6 :
7 : This program is free software; you can redistribute it and/or modify
8 : it under the terms of the GNU General Public License as published by
9 : the Free Software Foundation; either version 3, or (at your option)
10 : any later version.
11 :
12 : This program is distributed in the hope that it will be useful,
13 : but WITHOUT ANY WARRANTY; without even the implied warranty of
14 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 : GNU General Public License for more details.
16 :
17 : You should have received a copy of the GNU General Public License along
18 : with this program; if not, write to the Free Software Foundation,
19 : Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
20 :
21 : #include <config.h>
22 :
23 : /* Specification. */
24 : #ifdef IN_LIBASPRINTF
25 : # include "vasprintf.h"
26 : #else
27 : # include <stdio.h>
28 : #endif
29 :
30 : #include <errno.h>
31 : #include <limits.h>
32 : #include <stdlib.h>
33 :
34 600 : #include "vasnprintf.h"
35 :
36 : int
37 600 : vasprintf (char **resultp, const char *format, va_list args)
38 600 : {
39 0 : size_t length;
40 : char *result = vasnprintf (NULL, &length, format, args);
41 600 : if (result == NULL)
42 : return -1;
43 0 :
44 0 : if (length > INT_MAX)
45 0 : {
46 : free (result);
47 : errno = EOVERFLOW;
48 600 : return -1;
49 : }
50 600 :
51 : *resultp = result;
52 : /* Return the number of resulting bytes, excluding the trailing NUL. */
53 : return length;
54 : }
|