[PATCH v6 03/12] lib: sbi: Add '+' flags for print
Xiang W
wxjstz at 126.com
Tue Jul 4 02:54:37 PDT 2023
在 2023-07-04星期二的 09:38 +0530,Anup Patel写道:
> On Mon, Jun 12, 2023 at 1:40 PM Xiang W <wxjstz at 126.com> wrote:
>
> No patch description ?
Will be done in next patch.
Regards,
Xiang W
>
> >
> > Signed-off-by: Xiang W <wxjstz at 126.com>
> > ---
> > lib/sbi/sbi_console.c | 25 ++++++++++++++++---------
> > 1 file changed, 16 insertions(+), 9 deletions(-)
> >
> > diff --git a/lib/sbi/sbi_console.c b/lib/sbi/sbi_console.c
> > index b7d0896..75fd5ac 100644
> > --- a/lib/sbi/sbi_console.c
> > +++ b/lib/sbi/sbi_console.c
> > @@ -120,6 +120,7 @@ unsigned long sbi_ngets(char *str, unsigned long len)
> > #define PAD_RIGHT 1
> > #define PAD_ZERO 2
> > #define PAD_ALTERNATE 4
> > +#define PAD_SIGN 8
> > #define PRINT_BUF_LEN 64
> >
> > #define va_start(v, l) __builtin_va_start((v), l)
> > @@ -186,15 +187,18 @@ static int prints(char **out, u32 *out_len, const char *string, int width,
> > static int printi(char **out, u32 *out_len, long long i, int b, int sg,
> > int width, int flags, int letbase)
> > {
> > - char print_buf[PRINT_BUF_LEN];
> > - char *s;
> > - int neg = 0, pc = 0;
> > + char *s, sign, print_buf[PRINT_BUF_LEN];
> > + int pc = 0;
> > u64 t;
> > unsigned long long u = i;
> >
> > - if (sg && b == 10 && i < 0) {
> > - neg = 1;
> > - u = -i;
> > + if (sg && b == 10) {
> > + if ((flags & PAD_SIGN) && i > 0)
> > + sign = '+';
> > + if (i < 0) {
> > + sign = '-';
> > + u = -i;
> > + }
> > }
> >
> > s = print_buf + PRINT_BUF_LEN - 1;
> > @@ -221,13 +225,13 @@ static int printi(char **out, u32 *out_len, long long i, int b, int sg,
> > *--s = '0';
> > }
> >
> > - if (neg) {
> > + if (sign) {
> > if (width && (flags & PAD_ZERO)) {
> > - printc(out, out_len, '-');
> > + printc(out, out_len, sign);
> > ++pc;
> > --width;
> > } else {
> > - *--s = '-';
> > + *--s = sign;
> > }
> > }
> >
> > @@ -275,6 +279,9 @@ static int print(char **out, u32 *out_len, const char *format, va_list args)
> > case '-':
> > flags |= PAD_RIGHT;
> > break;
> > + case '+':
> > + flags |= PAD_SIGN;
> > + break;
> > case '#':
> > flags |= PAD_ALTERNATE;
> > break;
> > --
> > 2.39.2
> >
>
> Otherwise, it looks good to me.
>
> Reviewed-by: Anup Patel <anup at brainfault.org>
>
> Regards,
> Anup
More information about the opensbi
mailing list