Commit a80f1da9 authored by Joel Nider's avatar Joel Nider Committed by Andrei Vagin

compel: std_vprint_num returns a null-terminated string

This function is an analogue to vsprintf(), and is used in very much the
same way. The caller expects the modified string pointer to be pointing to
a null-terminated string.
Signed-off-by: 's avatarJoel Nider <joeln@il.ibm.com>
Signed-off-by: 's avatarAndrei Vagin <avagin@virtuozzo.com>
parent 5d3ea878
...@@ -143,6 +143,7 @@ int std_vprint_num(char *buf, int blen, int num, char **ps) ...@@ -143,6 +143,7 @@ int std_vprint_num(char *buf, int blen, int num, char **ps)
char *s; char *s;
s = &buf[blen - 1]; s = &buf[blen - 1];
*s-- = 0; /* make sure the returned string is NULL terminated */
if (num < 0) { if (num < 0) {
neg = 1; neg = 1;
...@@ -166,15 +167,14 @@ int std_vprint_num(char *buf, int blen, int num, char **ps) ...@@ -166,15 +167,14 @@ int std_vprint_num(char *buf, int blen, int num, char **ps)
done: done:
s++; s++;
*ps = s; *ps = s;
return blen - (s - buf); return blen - (s - buf) - 1;
} }
static void print_num(int num, struct simple_buf *b) static void print_num(int num, struct simple_buf *b)
{ {
char buf[12], *s; char buf[12], *s;
buf[11] = '\0'; std_vprint_num(buf, sizeof(buf), num, &s);
std_vprint_num(buf, sizeof(buf) - 1, num, &s);
print_string(s, b); print_string(s, b);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment