aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--common/ChangeLog6
-rw-r--r--common/vasprintf.c9
2 files changed, 14 insertions, 1 deletions
diff --git a/common/ChangeLog b/common/ChangeLog
index 3fa688654..ff886650d 100644
--- a/common/ChangeLog
+++ b/common/ChangeLog
@@ -1,3 +1,9 @@
+2002-09-04 Neal H. Walfield <[email protected]>
+
+ * 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 <[email protected]>
* errors.h: Added STATUS_IMPORT_PROBLEM.
diff --git a/common/vasprintf.c b/common/vasprintf.c
index 36121d8cc..2af2d3a20 100644
--- a/common/vasprintf.c
+++ b/common/vasprintf.c
@@ -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')
{