/************************************************************************ * * s p r i n t f F u n c t i o n * ------------------------------- * Copyright 1982 by Digital Research Inc. All rights reserved. * * "sprintf" prints args specified in format string to a string * pointed to by str. No checks for str overflow are possible. * sprintf returns str. * * Calling sequence: * s = sprintf(string,fmt,arg1,arg2,...argn); * Where: * string = place to put info * fmt -> a string specifying how arg1-n are to be printed. * s = number chars put to string * * 10/83 - return num chars printed (like printf & fprintf) whf * **************************************************************************/ #include "stdio.h" WORD sprintf(str,fmt,args) /* CLEAR FUNCTION ***********/ BYTE *str, *fmt, *args; { FILE stream; /* pseudo stream tab */ REG FILE *sp; /* ptr thereto */ REG WORD rv; /* return val from _doprt */ /* */ sp = &stream; /* point to pseudo stream */ sp->_cnt = 32767; /* assume 'infinite' buf */ sp->_ptr = sp->_base = str; /* stream buf -> string */ sp->_flag = _IOWRT | _IOSTRI; /* writeable string */ sp->_fd = -1; /* insure no real i/o */ rv = _doprt(sp,fmt,&args); /* do the print */ putc(NULL,sp); /* NULL terminate string */ return(rv); /* tell user what happened */