tools/nolibc/printf: Add support for conversion flags space and plus

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>
Link: https://patch.msgid.link/20260308113742.12649-13-david.laight.linux@gmail.com
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
This commit is contained in:
David Laight 2026-03-08 11:37:37 +00:00 committed by Thomas Weißschuh
parent 8df70ee45b
commit a30d20588f

View File

@ -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.
@ -457,6 +457,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 = ' ';
}
}