#include #include #include #include "lib.h" #ifndef __GNUC__ static FILE dummyf = {0L, (unsigned char *)0, (unsigned char *)0, _IOWRT|_IOBIN|_IOSTRING|_IOFBF, 0, LONG_MAX, '\0'}; #endif __EXTERN int _doprnt __PROTO((FILE *file, const char *fmt, va_list argp)); #ifdef __STDC__ int sprintf(char *buf, const char *fmt, ...) #else int sprintf(buf, fmt) char *buf; const char *fmt; #endif { register int n; va_list argp; #ifdef __GNUC__ FILE sf = {0L, (unsigned char *)buf, (unsigned char *)buf, _IOWRT|_IOBIN|_IOSTRING|_IOFBF, 0, LONG_MAX,'\0'}; #else FILE sf; sf = dummyf; sf._ptr = sf._base = (unsigned char *)buf; #endif va_start(argp, fmt); n = _doprnt(&sf, fmt, argp); *(sf._ptr) = '\0'; /* always tie of the string */ return(n); } int vsprintf(buf, fmt, args) char *buf; const char *fmt; va_list args; { register int n; #ifdef __GNUC__ FILE sf = {0L, (unsigned char *)buf, (unsigned char *)buf, _IOWRT|_IOBIN|_IOSTRING|_IOFBF, 0, LONG_MAX,'\0'}; #else FILE sf; sf = dummyf; sf._ptr = sf._base = (unsigned char *)buf; #endif n = _doprnt(&sf, fmt, args); *(sf._ptr) = '\0'; /* always tie of the string */ return(n); }