2002-09-04 Neal H. Walfield <neal@g10code.de>
authorNeal Walfield <neal@walfield.org>
Thu, 5 Sep 2002 16:24:16 +0000 (16:24 +0000)
committerNeal Walfield <neal@walfield.org>
Thu, 5 Sep 2002 16:24:16 +0000 (16:24 +0000)
* vasprintf.c (vasprintf) [va_copy]: Use va_copy.
[!va_copy && __va_copy]: Use __va_copy.
[!va_copy && !__va_copy]: Only now fall back to using memcpy.

common/ChangeLog
common/vasprintf.c

index 3fa6886..ff88665 100644 (file)
@@ -1,3 +1,9 @@
+2002-09-04  Neal H. Walfield  <neal@g10code.de>
+
+       * vasprintf.c (vasprintf) [va_copy]: Use va_copy.
+       [!va_copy && __va_copy]: Use __va_copy.
+       [!va_copy && !__va_copy]: Only now fall back to using memcpy.
+
 2002-08-21  Werner Koch  <wk@gnupg.org>
 
        * errors.h: Added STATUS_IMPORT_PROBLEM.
index 36121d8..2af2d3a 100644 (file)
@@ -39,8 +39,15 @@ vasprintf (char **result, const char *format, va_list *args)
   int total_width = strlen (format) + 1;
   va_list ap;
 
-  /* FIXME: use va_copy() */
+#ifdef va_copy
+  va_copy (ap, args);
+#else
+#ifdef __va_copy
+  __va_copy (ap, args);
+#else
   memcpy (&ap, args, sizeof (va_list));
+#endif /* __va_copy */
+#endif /* va_copy */
 
   while (*p != '\0')
     {