home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / sendmail / sendmail-5.65c+IDA-1.4.4.1 / support / stdarg.h < prev    next >
Encoding:
C/C++ Source or Header  |  1991-05-30  |  1.3 KB  |  35 lines

  1. /*-
  2.  * Copyright (c) 1990 The Regents of the University of California.
  3.  * All rights reserved.
  4.  *
  5.  * Redistribution and use in source and binary forms are permitted provided
  6.  * that: (1) source distributions retain this entire copyright notice and
  7.  * comment, and (2) distributions including binaries display the following
  8.  * acknowledgement:  ``This product includes software developed by the
  9.  * University of California, Berkeley and its contributors'' in the
  10.  * documentation or other materials provided with the distribution and in
  11.  * all advertising materials mentioning features or use of this software.
  12.  * Neither the name of the University nor the names of its contributors may
  13.  * be used to endorse or promote products derived from this software without
  14.  * specific prior written permission.
  15.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
  16.  * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
  17.  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  18.  *
  19.  *    @(#)stdarg.h    5.4 (Berkeley) 6/26/90
  20.  */
  21.  
  22. typedef char *va_list;
  23.  
  24. #define    va_arg(ap, type) \
  25.     ((type *)(ap += sizeof(type) < sizeof(int) ? \
  26.         (abort(), 0) : sizeof(type)))[-1]
  27.  
  28. #define    va_end(ap)
  29.  
  30. #define    __va_promote(type) \
  31.     (((sizeof(type) + sizeof(int) - 1) / sizeof(int)) * sizeof(int))
  32.  
  33. #define    va_start(ap, last) \
  34.     (ap = ((char *)&(last) + __va_promote(last)))
  35.