lib: sbi: Simplify prints

When doing width = width - strlen(string) in prints there is no need
to consider the case that witdh may be less than 0. This is because
the code to do filling needs to be executed under the condition that
width > 0.

Signed-off-by: Xiang W <wxjstz@126.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
This commit is contained in:
Xiang W 2023-07-10 00:02:28 +08:00 committed by Anup Patel
parent c6ee5ae5a4
commit 3b6fcddceb

View file

@ -151,24 +151,11 @@ static void printc(char **out, u32 *out_len, char ch)
static int prints(char **out, u32 *out_len, const char *string, int width,
int flags)
{
int pc = 0;
char padchar = ' ';
if (width > 0) {
int len = 0;
const char *ptr;
for (ptr = string; *ptr; ++ptr)
++len;
if (len >= width)
width = 0;
else
width -= len;
if (flags & PAD_ZERO)
padchar = '0';
}
int pc = 0;
width -= sbi_strlen(string);
if (!(flags & PAD_RIGHT)) {
for (; width > 0; --width) {
printc(out, out_len, padchar);
printc(out, out_len, flags & PAD_ZERO ? '0' : ' ');
++pc;
}
}
@ -177,7 +164,7 @@ static int prints(char **out, u32 *out_len, const char *string, int width,
++pc;
}
for (; width > 0; --width) {
printc(out, out_len, padchar);
printc(out, out_len, ' ');
++pc;
}