Tiny, fast, non-dependent and fully loaded printf implementation for embedded systems. Extensive test suite passing.
Finally exponential support arrived in version 4.0.0! 🥂
%e
and %g
. Major thanks to @mjasperse for his cool contribution!PRINTF_DISABLE_SUPPORT_EXPONENTIAL
and v4 behaves like v3vprintf()
functionuintptr_t
type
Thanks to @phillipjohnston for pointing this out and creating a small PR.fctprintf()
, it must not append/output a terminating null byte.
Thanks to @phillipjohnston for bringing this to attentionstrlen()
function by its secure version strnlen_s()
. So a non-terminated string would not cause a format like "%.4s"
to hang now.
Thanks a lot to @cz7asm for bringing this to attention and creating a PR.PRINTF_OVERRIDE_LIBC
option. This is kind of enabled by default now. All conflicting function names (printf()
, sprintf()
etc.) are defined with a trailing underscore now and remapped by a macro. This avoids any problems, if some headers contain matching declarations.PRINTF_OVERRIDE_LIBC
option to avoid possible LIBC conflictsSeveral important fixes:
_ftoa()
printf("% .0d", 0)
Thanks a lot to @wm4 for bringing these issues to attention.