-//sprintfv\r
-/**\r
- \fn EXPORT void sprintfv(char *buf, char *format, va_list args)\r
- \brief Prints a formatted string to a buffer\r
- \param buf Pointer - Destination Buffer\r
- \param format String - Format String\r
- \param args VarArgs List - Arguments\r
-*/\r
-EXPORT void sprintfv(char *buf, char *format, va_list args)\r
-{\r
- char tmp[33];\r
- int c, arg, minSize;\r
- int pos = 0;\r
- char *p;\r
- char pad;\r
-\r
- tmp[32] = '\0';\r
- \r
- while((c = *format++) != 0)\r
- {\r
- //SysDebug("c = '%c'\n", c);\r
- if (c != '%') {\r
- buf[pos++] = c;\r
- continue;\r
- }\r
- \r
- c = *format++;\r
- if(c == '%') {\r
- buf[pos++] = '%';\r
- continue;\r
- }\r
- \r
- // Padding\r
- if(c == '0') {\r
- pad = '0';\r
- c = *format++;\r
- } else\r
- pad = ' ';\r
- minSize = 0;\r
- if('1' <= c && c <= '9')\r
- {\r
- while('0' <= c && c <= '9')\r
- {\r
- minSize *= 10;\r
- minSize += c - '0';\r
- c = *format++;\r
- }\r
- }\r
- \r
- p = tmp;\r
- \r
- // Get Argument\r
- arg = va_arg(args, int);\r
- // Get Type\r
- switch (c) {\r
- case 'd':\r
- case 'i':\r
- if(arg < 0) {\r
- buf[pos++] = '-';\r
- arg = -arg;\r
- }\r
- itoa(tmp, arg, 10, minSize, pad);\r
- goto sprintf_puts;\r
- // break;\r
- case 'u':\r
- itoa(tmp, arg, 10, minSize, pad);\r
- goto sprintf_puts;\r
- // break;\r
- case 'x':\r
- itoa(tmp, arg, 16, minSize, pad);\r
- goto sprintf_puts;\r
- // break;\r
- case 'o':\r
- itoa(tmp, arg, 8, minSize, pad);\r
- goto sprintf_puts;\r
- // break;\r
- case 'b':\r
- itoa(tmp, arg, 2, minSize, pad);\r
- goto sprintf_puts;\r
- // break;\r
-\r
- case 's':\r
- p = (void*)arg;\r
- sprintf_puts:\r
- if(!p) p = "(null)";\r
- while(*p) buf[pos++] = *p++;\r
- break;\r
-\r
- default:\r
- buf[pos++] = arg;\r
- break;\r
- }\r
- }\r
- buf[pos++] = '\0';\r
-}\r
-/*\r
-ssprintfv\r
-- Size, Stream, Print Formated, Variable Argument List\r
-*/\r
-/**\r
- \fn EXPORT int ssprintfv(char *format, va_list args)\r
- \brief Gets the total character count from a formatted string\r
- \param format String - Format String\r
- \param args VarArgs - Argument List\r
-*/\r
-EXPORT int ssprintfv(char *format, va_list args)\r