1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-09 22:41:56 +03:00

Add use of asprintf()

Add asprintf(), pg_asprintf(), and psprintf() to simplify string
allocation and composition.  Replacement implementations taken from
NetBSD.

Reviewed-by: Álvaro Herrera <alvherre@2ndquadrant.com>
Reviewed-by: Asif Naeem <anaeem.it@gmail.com>
This commit is contained in:
Peter Eisentraut
2013-10-13 00:09:18 -04:00
parent a53dee43fe
commit 5b6d08cd29
47 changed files with 253 additions and 363 deletions

View File

@ -93,6 +93,25 @@ pg_free(void *ptr)
free(ptr);
}
int
pg_asprintf(char **ret, const char *format, ...)
{
va_list ap;
int rc;
va_start(ap, format);
rc = vasprintf(ret, format, ap);
va_end(ap);
if (rc < 0)
{
fprintf(stderr, _("out of memory\n"));
exit(EXIT_FAILURE);
}
return rc;
}
/*
* Frontend emulation of backend memory management functions. Useful for
* programs that compile backend files.
@ -126,3 +145,23 @@ repalloc(void *pointer, Size size)
{
return pg_realloc(pointer, size);
}
char *
psprintf(const char *format, ...)
{
va_list ap;
int rc;
char *ret;
va_start(ap, format);
rc = vasprintf(&ret, format, ap);
va_end(ap);
if (rc < 0)
{
fprintf(stderr, _("out of memory\n"));
exit(EXIT_FAILURE);
}
return ret;
}