summaryrefslogtreecommitdiffstats
path: root/Utilities/cmxmlrpc/xmlrpc_data.c
diff options
context:
space:
mode:
Diffstat (limited to 'Utilities/cmxmlrpc/xmlrpc_data.c')
-rw-r--r--Utilities/cmxmlrpc/xmlrpc_data.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/Utilities/cmxmlrpc/xmlrpc_data.c b/Utilities/cmxmlrpc/xmlrpc_data.c
index 0d3c3ca..456d8e4 100644
--- a/Utilities/cmxmlrpc/xmlrpc_data.c
+++ b/Utilities/cmxmlrpc/xmlrpc_data.c
@@ -24,10 +24,14 @@ typedef double va_double;
** tricky fashions. We don't why Python does this, but since we're
** abusing our va_list objects in a similar fashion, we'll copy them
** too. */
-#if VA_LIST_IS_ARRAY
-#define VA_LIST_COPY(dest,src) memcpy((dest), (src), sizeof(va_list))
+#ifdef HAS_VA_COPY
+# define VA_LIST_COPY(dest,src) va_copy((dest), (src))
#else
-#define VA_LIST_COPY(dest,src) ((dest) = (src))
+# if VA_LIST_IS_ARRAY
+# define VA_LIST_COPY(dest,src) memcpy((dest), (src), sizeof(va_list))
+# else
+# define VA_LIST_COPY(dest,src) ((dest) = (src))
+# endif
#endif