- vsnprintf(my_buffer, my_length, fmt, ap); /* GNU extension */
+ /* SUSv2, 1997 */
+ int used;
+ while ((used = vsnprintf(my_buffer, my_length, fmt, ap))
+ >= (int) my_length) {
+ my_length = (size_t) ((3 * used) / 2);
+ my_buffer = typeRealloc(char, my_length, my_buffer);
+ }