libbase: Adding missing vprintf function.
Fixes #8. ``` int vprintf(const char *format, va_list ap); The functions vprintf(), vfprintf(), vsprintf(), vsnprintf() are equivalent to the functions printf(), fprintf(), sprintf(), snprintf(), respectively, except that they are called with a va_list instead of a variable number of arguments. ```
This commit is contained in:
parent
7a9cf57cfe
commit
548fd33d20
|
@ -16,6 +16,7 @@ extern "C" {
|
||||||
int vsnprintf(char *buf, size_t size, const char *fmt, va_list args);
|
int vsnprintf(char *buf, size_t size, const char *fmt, va_list args);
|
||||||
int vscnprintf(char *buf, size_t size, const char *fmt, va_list args);
|
int vscnprintf(char *buf, size_t size, const char *fmt, va_list args);
|
||||||
int vsprintf(char *buf, const char *fmt, va_list args);
|
int vsprintf(char *buf, const char *fmt, va_list args);
|
||||||
|
int vprintf(const char *format, va_list ap);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,17 +64,22 @@ void putsnonl(const char *s)
|
||||||
|
|
||||||
#define PRINTF_BUFFER_SIZE 256
|
#define PRINTF_BUFFER_SIZE 256
|
||||||
|
|
||||||
int printf(const char *fmt, ...)
|
int vprintf(const char *fmt, va_list args)
|
||||||
{
|
{
|
||||||
va_list args;
|
|
||||||
int len;
|
int len;
|
||||||
char outbuf[PRINTF_BUFFER_SIZE];
|
char outbuf[PRINTF_BUFFER_SIZE];
|
||||||
|
|
||||||
va_start(args, fmt);
|
|
||||||
len = vscnprintf(outbuf, sizeof(outbuf), fmt, args);
|
len = vscnprintf(outbuf, sizeof(outbuf), fmt, args);
|
||||||
va_end(args);
|
|
||||||
outbuf[len] = 0;
|
outbuf[len] = 0;
|
||||||
putsnonl(outbuf);
|
putsnonl(outbuf);
|
||||||
|
return len;
|
||||||
|
}
|
||||||
|
|
||||||
|
int printf(const char *fmt, ...)
|
||||||
|
{
|
||||||
|
int len;
|
||||||
|
va_list args;
|
||||||
|
va_start(args, fmt);
|
||||||
|
len = vprintf(fmt, args);
|
||||||
|
va_end(args);
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue