home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume22 / nn6.4 / part21 / vararg.h < prev   
Encoding:
C/C++ Source or Header  |  1990-06-07  |  1.2 KB  |  56 lines

  1. /*
  2.  *    (c) Copyright 1990, Kim Fabricius Storm.  All rights reserved.
  3.  *
  4.  *     Semi-faked varargs feature
  5.  */
  6.  
  7. #ifdef HAVE_VARARGS
  8. #undef NO_VARARGS
  9. #endif
  10.  
  11. #ifdef NO_VARARGS
  12.  
  13. #define va_alist    zZa, zZb, zZc, zZd, zZe, zZf, zZg, zZh
  14. #define va_dcl        char *zZa, *zZb, *zZc, *zZd, *zZe, *zZf, *zZg, *zZh;
  15.  
  16. #define va_arg1(type)    (type)zZa
  17. #define va_arg2(type)    (type)zZb
  18. #define va_arg3(type)    (type)zZc
  19. #define va_args1toN    zZa, zZb, zZc, zZd, zZe, zZf, zZg, zZh
  20. #define va_args2toN    zZb, zZc, zZd, zZe, zZf, zZg, zZh
  21. #define va_args3toN    zZc, zZd, zZe, zZf, zZg, zZh
  22. #define va_args4toN    zZd, zZe, zZf, zZg, zZh
  23.  
  24. #define vsprintf    sprintf
  25. #define vprintf        printf
  26.  
  27. #define use_vararg
  28. #define start_vararg
  29. #define end_vararg
  30.  
  31. #define va_tail        va_alist
  32. #define va_tdcl        va_dcl
  33.  
  34. #else
  35.  
  36. #include <varargs.h>
  37.  
  38. #define va_tail        zZap
  39. #define    va_tdcl        va_list va_tail;
  40.  
  41. #define use_vararg    va_list zZap
  42. #define start_vararg    va_start(zZap)
  43. #define end_vararg    va_end(zZap)
  44.  
  45. #define va_arg1(type)    va_arg(zZap, type)
  46. #define va_arg2(type)    va_arg(zZap, type)
  47. #define va_arg3(type)    va_arg(zZap, type)
  48. #define va_args1toN    zZap
  49. #define va_args2toN    zZap
  50. #define va_args3toN    zZap
  51. #define va_args4toN    zZap
  52.  
  53. #endif
  54.  
  55.  
  56.