xref: /netbsd-src/external/ibm-public/postfix/dist/src/util/compat_va_copy.h (revision 16d67a18c4cbb2d3cb426b01120f4938ca6dbbf9)
1*16d67a18Stron /*	$NetBSD: compat_va_copy.h,v 1.1.1.1 2014/07/06 19:27:57 tron Exp $	*/
2*16d67a18Stron 
3*16d67a18Stron #ifndef _COMPAT_VA_COPY_H_INCLUDED_
4*16d67a18Stron #define _COMPAT_VA_COPY_H_INCLUDED_
5*16d67a18Stron 
6*16d67a18Stron /*++
7*16d67a18Stron /* NAME
8*16d67a18Stron /*	compat_va_copy 3h
9*16d67a18Stron /* SUMMARY
10*16d67a18Stron /*	compatibility
11*16d67a18Stron /* SYNOPSIS
12*16d67a18Stron /*	#include <compat_va_copy.h>
13*16d67a18Stron /* DESCRIPTION
14*16d67a18Stron /* .nf
15*16d67a18Stron 
16*16d67a18Stron  /*
17*16d67a18Stron   * C99 defines va_start and va_copy as macros, so we can probe the
18*16d67a18Stron   * compilation environment with #ifdef etc. Some environments define
19*16d67a18Stron   * __va_copy so we probe for that, too.
20*16d67a18Stron   */
21*16d67a18Stron #if !defined(va_start)
22*16d67a18Stron #error "include <stdarg.h> first"
23*16d67a18Stron #endif
24*16d67a18Stron 
25*16d67a18Stron #if !defined(VA_COPY)
26*16d67a18Stron #if defined(va_copy)
27*16d67a18Stron #define VA_COPY(dest, src) va_copy(dest, src)
28*16d67a18Stron #elif defined(__va_copy)
29*16d67a18Stron #define VA_COPY(dest, src) __va_copy(dest, src)
30*16d67a18Stron #else
31*16d67a18Stron #define VA_COPY(dest, src) (dest) = (src)
32*16d67a18Stron #endif
33*16d67a18Stron #endif					/* VA_COPY */
34*16d67a18Stron 
35*16d67a18Stron /* LICENSE
36*16d67a18Stron /* .ad
37*16d67a18Stron /* .fi
38*16d67a18Stron /*	The Secure Mailer license must be distributed with this software.
39*16d67a18Stron /* AUTHOR(S)
40*16d67a18Stron /*	Wietse Venema
41*16d67a18Stron /*	IBM T.J. Watson Research
42*16d67a18Stron /*	P.O. Box 704
43*16d67a18Stron /*	Yorktown Heights, NY 10598, USA
44*16d67a18Stron /*--*/
45*16d67a18Stron 
46*16d67a18Stron #endif
47