- /* Make an initial guess for the size of any single message fragment. */
- if (partial_message_size == 0)
- {
- partial_message_size_used = 0;
- partial_message_size = 512;
- partial_message = xmalloc (partial_message_size);
- }
- else
- if (partial_message_size - partial_message_size_used < 256)
- {
- partial_message_size += 512;
- partial_message = xrealloc (partial_message, partial_message_size);
- }
-
-#if defined(VA_START) && (HAVE_VSNPRINTF || _LIBC)
- VA_START (args, message);
- for ( ; ; )
- {
- n = vsnprintf (partial_message + partial_message_size_used,
- partial_message_size - partial_message_size_used,
- message, args);
-
- if (n < partial_message_size - partial_message_size_used)
- {
- partial_message_size_used += n;
- break;
- }
-
- partial_message_size += 512;
- partial_message = xrealloc (partial_message, partial_message_size);
- }
- va_end (args);
-#else
-#if HAVE_SNPRINTF
- for ( ; ; )
- {
- n = snprintf (partial_message + partial_message_size_used,
- partial_message_size - partial_message_size_used,
- message, a1, a2, a3, a4, a5, a6, a7, a8);
-
- if (n < partial_message_size - partial_message_size_used)
- {
- partial_message_size_used += n;
- break;
- }