[PATCH v4 next 18/23] tools/nolibc/printf: Add support for conversion flags space and plus

david.laight.linux@gmail.com posted 23 patches 1 month, 1 week ago
There is a newer version of this series
[PATCH v4 next 18/23] tools/nolibc/printf: Add support for conversion flags space and plus
Posted by david.laight.linux@gmail.com 1 month, 1 week ago
From: David Laight <david.laight.linux@gmail.com>

Flags ' ' and '+' are sign characters for positive numbers.

Signed-off-by: David Laight <david.laight.linux@gmail.com>
---

v4: Split from the previous patch and support for the # flag.

 tools/include/nolibc/stdio.h | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/tools/include/nolibc/stdio.h b/tools/include/nolibc/stdio.h
index fb310b7d023f..5d75e8530ce2 100644
--- a/tools/include/nolibc/stdio.h
+++ b/tools/include/nolibc/stdio.h
@@ -296,7 +296,7 @@ int fseek(FILE *stream, long offset, int whence)
  *  - %% generates a single %
  *  - %m outputs strerror(errno).
  *  - %X outputs a..f the same as %x.
- *  - The modifiers [#-+ 0] are currently ignored.
+ *  - The modifiers [#-0] are currently ignored.
  *  - No support for precision or variable widths.
  *  - No support for floating point or wide characters.
  *  - Invalid formats are copied to the output buffer.
@@ -456,6 +456,10 @@ int __nolibc_printf(__nolibc_printf_cb cb, void *state, const char *fmt, va_list
 					sign_prefix = '-';
 					v = -(signed_v + 1);
 					v++;
+				} else if (_NOLIBC_PF_FLAGS_CONTAIN(flags, '+')) {
+					sign_prefix = '+';
+				} else if (_NOLIBC_PF_FLAGS_CONTAIN(flags, ' ')) {
+					sign_prefix = ' ';
 				}
 			}
 
-- 
2.39.5
Re: [PATCH v4 next 18/23] tools/nolibc/printf: Add support for conversion flags space and plus
Posted by Willy Tarreau 1 month ago
On Mon, Mar 02, 2026 at 10:18:10AM +0000, david.laight.linux@gmail.com wrote:
> From: David Laight <david.laight.linux@gmail.com>
> 
> Flags ' ' and '+' are sign characters for positive numbers.
> 
> Signed-off-by: David Laight <david.laight.linux@gmail.com>

Acked-by: Willy Tarreau <w@1wt.eu>

willy
> ---
> 
> v4: Split from the previous patch and support for the # flag.
> 
>  tools/include/nolibc/stdio.h | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/include/nolibc/stdio.h b/tools/include/nolibc/stdio.h
> index fb310b7d023f..5d75e8530ce2 100644
> --- a/tools/include/nolibc/stdio.h
> +++ b/tools/include/nolibc/stdio.h
> @@ -296,7 +296,7 @@ int fseek(FILE *stream, long offset, int whence)
>   *  - %% generates a single %
>   *  - %m outputs strerror(errno).
>   *  - %X outputs a..f the same as %x.
> - *  - The modifiers [#-+ 0] are currently ignored.
> + *  - The modifiers [#-0] are currently ignored.
>   *  - No support for precision or variable widths.
>   *  - No support for floating point or wide characters.
>   *  - Invalid formats are copied to the output buffer.
> @@ -456,6 +456,10 @@ int __nolibc_printf(__nolibc_printf_cb cb, void *state, const char *fmt, va_list
>  					sign_prefix = '-';
>  					v = -(signed_v + 1);
>  					v++;
> +				} else if (_NOLIBC_PF_FLAGS_CONTAIN(flags, '+')) {
> +					sign_prefix = '+';
> +				} else if (_NOLIBC_PF_FLAGS_CONTAIN(flags, ' ')) {
> +					sign_prefix = ' ';
>  				}
>  			}
>  
> -- 
> 2.39.5