X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/2a49908006b177c4d6354309333d06b1b96e4887..0fd474df7001837bde53da0e42e83081827c9641:/lunaix-os/usr/libc/src/_vprintf.c diff --git a/lunaix-os/usr/libc/src/_vprintf.c b/lunaix-os/usr/libc/src/_vprintf.c index 28dea37..7659e28 100644 --- a/lunaix-os/usr/libc/src/_vprintf.c +++ b/lunaix-os/usr/libc/src/_vprintf.c @@ -2,6 +2,7 @@ #include #include #include +#include #define NUMBUFSIZ 24 @@ -111,6 +112,9 @@ __vprintf_internal(char* buffer, const char* fmt, size_t max_len, va_list vargs) flags = flags | FLAG_CAPS; base = 16; goto format_unsigned; + case 'o': + base = 8; + goto format_unsigned; case 'p': num = (uintptr_t)va_arg(vargs, void*); base = 16; @@ -196,3 +200,19 @@ __vprintf_internal(char* buffer, const char* fmt, size_t max_len, va_list vargs) return ptr; } + +int +vsnprintf(char* buffer, unsigned int size, const char* fmt, va_list ap) +{ + return __vprintf_internal(buffer, fmt, size, ap); +} + +int +snprintf(char* buffer, unsigned int size, const char* fmt, ...) +{ + va_list l; + va_start(l, fmt); + int r = __vprintf_internal(buffer, fmt, size, l); + va_end(l); + return r; +} \ No newline at end of file