/*
 * Libraries and headers for PDC release 3.3 (C) 1989 Lionel Hummel.
 * PDC Software Distribution (C) 1989 Lionel Hummel and Paul Petersen.
 * PDC I/O Library (C) 1987 by J.A. Lydiatt.
 *
 * This code is freely redistributable upon the conditions that this 
 * notice remains intact and that modified versions of this file not
 * be included as part of the PDC Software Distribution without the
 * express consent of the copyright holders.  No warrantee of any
 * kind is provided with this code.  For further information, contact:
 *
 *  PDC Software Distribution    Internet:                     BIX:
 *  P.O. Box 4006             or hummel@cs.uiuc.edu            lhummel
 *  Urbana, IL  61801-8801       petersen@uicsrd.csrd.uiuc.edu
 */

/* Macros enabling functions to portably handle variable numbers of
 * arguments.
 */

/*
 * 10 Feb 91 Simon Wright; fix va_start(), remove va_decl
 *  3 Mar 91 sjw; ensure only effective once
 * 15 Apr 91 sjw; allow use with varargs.h, sort va_arg
 */

#ifndef __STDARG_H__
#define __STDARG_H__

#ifdef __VARARGS_H__
#undef __VARARGS_H__
#undef va_dcl
#undef va_start
#undef va_end
#else
typedef char 	       *va_list;
#endif

#define va_start(X, L)	(X = (va_list)((int)&L + ((sizeof(L) + 3) & ~3)))
#define va_arg(X, T)	((T *)(X += ((sizeof(T) + 3) & ~3)))[-1]
#define va_end(X)

#endif /* __STDARG_H__ */


