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-2010 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#include "vasnprintf.h"
35
36int
37vasprintf (char **resultp, const char *format, va_list args)
38{
39  size_t length;
40  char *result = vasnprintf (NULL, &length, format, args);
41  if (result == NULL)
42    return -1;
43
44  if (length > INT_MAX)
45    {
46      free (result);
47      errno = EOVERFLOW;
48      return -1;
49    }
50
51  *resultp = result;
52  /* Return the number of resulting bytes, excluding the trailing NUL.  */
53  return length;
54}
55