home *** CD-ROM | disk | FTP | other *** search
/ Tools / WinSN5.0Ver.iso / NETSCAP.50 / WIN1998.ZIP / ns / dbm / src / snprintf.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-04-08  |  1.1 KB  |  67 lines

  1. #include "watcomfx.h"
  2. #include <sys/types.h>
  3. #include <stddef.h>
  4. #include <stdio.h>
  5. #if defined(_WINDOWS) || defined(SOLARIS) || defined(AIXV3) || defined(AIX) || defined(OSF1) || defined(NEC)
  6. #include "cdefs.h"
  7. #elif !defined(HPUX) && !defined(UNIXWARE) && !defined(SNI)
  8. #include <sys/cdefs.h>
  9. #endif
  10.  
  11. #include "prtypes.h"
  12.  
  13. #include <ncompat.h>
  14.  
  15. #ifdef __STDC__
  16. #include <stdarg.h>
  17. #else
  18. #include <varargs.h>
  19. #endif
  20.  
  21. int
  22. #ifdef __STDC__
  23. snprintf(char *str, size_t n, const char *fmt, ...)
  24. #else
  25. snprintf(str, n, fmt, va_alist)
  26.     char *str;
  27.     size_t n;
  28.     const char *fmt;
  29.     va_dcl
  30. #endif
  31. {
  32.     va_list ap;
  33. #ifdef VSPRINTF_CHARSTAR
  34.     char *rp;
  35. #else
  36.     int rval;
  37. #endif
  38. #ifdef __STDC__
  39.     va_start(ap, fmt);
  40. #else
  41.     va_start(ap);
  42. #endif
  43. #ifdef VSPRINTF_CHARSTAR
  44.     rp = vsprintf(str, fmt, ap);
  45.     va_end(ap);
  46.     return (strlen(rp));
  47. #else
  48.     rval = vsprintf(str, fmt, ap);
  49.     va_end(ap);
  50.     return (rval);
  51. #endif
  52. }
  53.  
  54. int
  55. vsnprintf(str, n, fmt, ap)
  56.     char *str;
  57.     size_t n;
  58.     const char *fmt;
  59.     va_list ap;
  60. {
  61. #ifdef VSPRINTF_CHARSTAR
  62.     return (strlen(vsprintf(str, fmt, ap)));
  63. #else
  64.     return (vsprintf(str, fmt, ap));
  65. #endif
  66. }
  67.