From b90ed1accb3fcdf1111dbe33a2ce4519eb6e5d0c Mon Sep 17 00:00:00 2001 From: Petri Lehtinen Date: Sun, 20 Mar 2011 21:15:39 +0200 Subject: [PATCH] Enhance portability of va_copy() va_copy() is a C99 feature. In C89 implementations, it's sometimes available as __va_copy(). If not, memcpy() should do the trick. --- src/jansson_private.h | 11 ++++++++++- src/load.c | 1 - 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/jansson_private.h b/src/jansson_private.h index 08731e8..9224b31 100644 --- a/src/jansson_private.h +++ b/src/jansson_private.h @@ -9,7 +9,6 @@ #define JANSSON_PRIVATE_H #include -#include #include "jansson.h" #include "hashtable.h" @@ -21,6 +20,16 @@ #define max(a, b) ((a) > (b) ? (a) : (b)) #endif +/* va_copy is a C99 feature. In C89 implementations, it's sometimes + available as __va_copy. If not, memcpy() should do the trick. */ +#ifndef va_copy +#ifdef __va_copy +#define va_copy __va_copy +#else +#define va_copy(a, b) memcpy(&(a), &(b), sizeof(va_list)) +#endif +#endif + typedef struct { json_t json; hashtable_t hashtable; diff --git a/src/load.c b/src/load.c index 74e33fc..262bd7d 100644 --- a/src/load.c +++ b/src/load.c @@ -12,7 +12,6 @@ #include #include #include -#include #include #include