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