*sprintf now returns write count without buffer
This commit is contained in:
@@ -11,8 +11,10 @@ static void _out_buf(struct __printf_backend *bk, char ch)
|
||||
{
|
||||
struct __vsnprintf_arg *arg = bk->arg;
|
||||
if (arg->idx < arg->max) {
|
||||
arg->buf[arg->idx++] = ch;
|
||||
arg->buf[arg->idx] = ch;
|
||||
}
|
||||
|
||||
arg->idx++;
|
||||
}
|
||||
|
||||
int vsnprintf(char *buf, size_t sz, const char *restrict format, va_list arg)
|
||||
@@ -25,5 +27,10 @@ int vsnprintf(char *buf, size_t sz, const char *restrict format, va_list arg)
|
||||
bk.out = _out_buf;
|
||||
bk.arg = &bk_arg;
|
||||
|
||||
return __xprintf(&bk, format, arg);
|
||||
__xprintf(&bk, format, arg);
|
||||
if (!bk_arg.idx) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return bk_arg.idx - 1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user