home *** CD-ROM | disk | FTP | other *** search
/ Unix System Administration Handbook 1997 October / usah_oct97.iso / news / nn.tar / nn-6.5.1 / vararg.h < prev    next >
C/C++ Source or Header  |  1995-04-29  |  1KB  |  60 lines

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