aboutsummaryrefslogblamecommitdiffstats
path: root/vasprintf.c
blob: fd1465027acfc049fa0e9133d7c7639c7b842579 (plain) (tree)
1
2
3

                                                         
            























                                                             

 

                 







                                                     
/* See LICENSE file for copyright and license details. */
#include "libsimple.h"
#ifndef TEST


int
libsimple_vasprintf(char **strp, const char *fmt, va_list ap)
{
	FILE *fp;
	size_t siz = 0;
	int ret;
	*strp = NULL;
	fp = open_memstream(strp, &siz);
	if (!fp)
		goto fail;
	ret = vfprintf(fp, fmt, ap);
	if (ret < 0)
		goto fail;
	if (fputc(0, fp))
		goto fail;
	fclose(fp);
	return ret;
fail:
	free(*strp);
	*strp = NULL;
	return -1;
}


#else
#include "test.h"

int
main(void)
{
	return 0; /* Tested via libsimple_asprintf */
}

#endif