int gmp_asprintf (char **result, const char *fmt, ...) { va_list ap; int ret; va_start (ap, fmt); ret = gmp_vasprintf (result, fmt, ap); va_end (ap); return ret; }
void check_vasprintf (const char *want, const char *fmt, va_list ap) { char *got; int got_len, want_len; want_len = strlen (want); got_len = gmp_vasprintf (&got, fmt, ap); if (got_len != want_len || strcmp (got, want) != 0) { printf ("gmp_vasprintf wrong\n"); printf (" fmt |%s|\n", fmt); printf (" got |%s|\n", got); printf (" want |%s|\n", want); printf (" got_len %d\n", got_len); printf (" want_len %d\n", want_len); abort (); } (*__gmp_free_func) (got, strlen(got)+1); }