10 #include "simpletext.h" 16 int _dosprnt(
const char *fmt, va_list args,
char *obuf)
27 while( (c = *fmt++) != 0 ) {
37 if (c ==
'0') fill_char =
'0';
38 while (c && isdigit(c)) {
39 width = 10*width + (c-
'0');
45 while (c && isdigit(c)) {
46 precision = 10*precision + (c-
'0');
60 l_arg = va_arg(args,
int);
61 buf += SPUTL(l_arg, 2, width, fill_char, buf);
65 i_arg = va_arg(args,
int);
66 buf += SPUTC(i_arg, buf);
70 s_arg = va_arg(args,
char *);
71 buf += SPUTS(s_arg, buf);
76 l_arg = va_arg(args,
int);
77 if (l_arg < 0 && c ==
'd') {
78 buf += SPUTC(
'-', buf);
82 buf += SPUTL(l_arg, 10, width, fill_char, buf);
88 union {
float f;
int i; } a;
89 a.i = va_arg(args,
int);
90 buf += SPUTS(floatToScientific(a.f), buf);
95 double d = va_arg(args,
double);
96 buf += SPUTS(float2string((
float) d, fstr, width, precision), buf);
101 l_arg = va_arg(args,
unsigned int);
102 buf += SPUTL(l_arg, 16, width, fill_char, buf);