libc: lib_bsprintf reuse var instead value for string

to simplify the code logic

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
This commit is contained in:
Xiang Xiao
2025-06-18 12:05:34 +08:00
committed by Xiang Xiao
parent 4b8a738141
commit d266bfaca1
+4 -5
View File
@@ -40,6 +40,7 @@ int lib_bsprintf(FAR struct lib_outstream_s *s, FAR const IPTR char *fmt,
begin_packed_struct union begin_packed_struct union
{ {
char c; char c;
char s[1];
short int si; short int si;
int i; int i;
long l; long l;
@@ -85,7 +86,7 @@ int lib_bsprintf(FAR struct lib_outstream_s *s, FAR const IPTR char *fmt,
memset(fmtstr, 0, sizeof(fmtstr)); memset(fmtstr, 0, sizeof(fmtstr));
} }
var = (FAR void *)((char *)buf + offset); var = (FAR void *)(data + offset);
fmtstr[len++] = c; fmtstr[len++] = c;
if (c == 'c' || c == 'd' || c == 'i' || c == 'u' || if (c == 'c' || c == 'd' || c == 'i' || c == 'u' ||
@@ -169,8 +170,6 @@ int lib_bsprintf(FAR struct lib_outstream_s *s, FAR const IPTR char *fmt,
} }
else if (c == 's') else if (c == 's')
{ {
FAR const char *value = data + offset;
if (prec != NULL) if (prec != NULL)
{ {
offset += strtol(prec, NULL, 10); offset += strtol(prec, NULL, 10);
@@ -178,10 +177,10 @@ int lib_bsprintf(FAR struct lib_outstream_s *s, FAR const IPTR char *fmt,
} }
else else
{ {
offset += strlen(value) + 1; offset += strlen(var->s) + 1;
} }
ret += lib_sprintf(s, fmtstr, value); ret += lib_sprintf(s, fmtstr, var->s);
infmt = false; infmt = false;
} }
else if (c == 'p') else if (c == 'p')