Subversion Repositories Kolibri OS

Rev

Rev 1882 | Blame | Last modification | View Log | Download | RSS feed

  1. /* Copyright (C) 1994 DJ Delorie, see COPYING.DJ for details */
  2. #include <stdio.h>
  3. #include <limits.h>
  4. #include <libc/file.h>
  5. #include <stdarg.h>
  6.  
  7. int
  8. vsnprintf(char *str, size_t size, const char *fmt, va_list ap)
  9. {
  10.   FILE _strbuf;
  11.   int len;
  12.  
  13.   _strbuf._flag = _IOWRT|_IOSTRG;
  14.   _strbuf._ptr = str;
  15.   _strbuf._cnt = size;
  16.   len = _doprnt(fmt, ap, &_strbuf);
  17.   *_strbuf._ptr = 0;
  18.   return len;
  19. }
  20.  
  21. int
  22. snprintf(char *str, size_t size, const char *fmt, ...)
  23. {
  24.   int len;
  25.   va_list va;
  26.   va_start(va, fmt);
  27.   len = vsnprintf(str, size, fmt, va);
  28.   va_end(va);
  29.   return len;
  30. }
  31.  
  32. int
  33. sprintf(char *str, const char *fmt, ...)
  34. {
  35.   int len;
  36.   va_list va;
  37.   va_start(va, fmt);
  38.   len = vsnprintf(str, INT_MAX, fmt, va);
  39.   va_end(va);
  40.   return len;
  41. }
  42.  
  43.