X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FLibraries%2Flibc.so_src%2FfileIO.c;h=f26fadace370e1be244c6289d7fe987ec47a81c3;hb=d5834686ad14b66420060192445f06bce85db389;hp=1b1d3f38bbf305055123f0d8ea18d744d5435e45;hpb=35580b646a841d59323953f4dfaf47e678dd9d64;p=tpg%2Facess2.git diff --git a/Usermode/Libraries/libc.so_src/fileIO.c b/Usermode/Libraries/libc.so_src/fileIO.c index 1b1d3f38..f26fadac 100644 --- a/Usermode/Libraries/libc.so_src/fileIO.c +++ b/Usermode/Libraries/libc.so_src/fileIO.c @@ -286,12 +286,12 @@ EXPORT int vsprintf(char * __s, const char *__format, va_list __args) //sprintfv /** - \fn EXPORT void vsnprintf(char *buf, const char *format, va_list args) - \brief Prints a formatted string to a buffer - \param buf Pointer - Destination Buffer - \param format String - Format String - \param args VarArgs List - Arguments -*/ + * \fn EXPORT void vsnprintf(char *buf, const char *format, va_list args) + * \brief Prints a formatted string to a buffer + * \param buf Pointer - Destination Buffer + * \param format String - Format String + * \param args VarArgs List - Arguments + */ EXPORT int vsnprintf(char *buf, size_t __maxlen, const char *format, va_list args) { char tmp[65]; @@ -441,6 +441,12 @@ const char cUCDIGITS[] = "0123456789ABCDEF"; /** * \fn static void itoa(char *buf, uint64_t num, int base, int minLength, char pad, int bSigned) * \brief Convert an integer into a character string + * \param buf Destination Buffer + * \param num Number to convert + * \param base Base-n number output + * \param minLength Minimum length of output + * \param pad Padding used to ensure minLength + * \param bSigned Signed number output? */ EXPORT void itoa(char *buf, uint64_t num, size_t base, int minLength, char pad, int bSigned) { @@ -460,6 +466,7 @@ EXPORT void itoa(char *buf, uint64_t num, size_t base, int minLength, char pad, } else bSigned = 0; + // Encode into reversed string while(num > base-1) { tmpBuf[pos++] = cUCDIGITS[ num % base ]; num = (uint64_t) num / (uint64_t)base; // Shift {number} right 1 digit @@ -539,3 +546,17 @@ EXPORT int sprintf(char *buf, const char *format, ...) va_end(args); return ret; } + +/** + * \fn EXPORT int snprintf(const char *buf, size_t maxlen, char *format, ...) + * \brief Print a formatted string to a buffer + */ +EXPORT int snprintf(char *buf, size_t maxlen, const char *format, ...) +{ + int ret; + va_list args; + va_start(args, format); + ret = vsnprintf((char*)buf, maxlen, (char*)format, args); + va_end(args); + return ret; +}