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 + + * 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 * 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') {