Printf Versions Save

Tiny, fast, non-dependent and fully loaded printf implementation for embedded systems. Extensive test suite passing.

v4.0.0

5 years ago

Finally exponential support arrived in version 4.0.0! 🥂

  • Scientific (exponential) notation support for types %e and %g. Major thanks to @mjasperse for his cool contribution!
    If exponential support is not needed, define PRINTF_DISABLE_SUPPORT_EXPONENTIAL and v4 behaves like v3
  • Added support for the vprintf() function
  • Updated catch2 to v2.7.0
  • Added more test cases (over 400 now!)

v3.1.4

5 years ago
  • Removed unnecessary float == comparison, code coverage is 100% now 🎉
  • Added more test cases

v3.1.3

5 years ago
  • Fixed const-cast warning by using cast to uintptr_t type Thanks to @phillipjohnston for pointing this out and creating a small PR.
  • Fixed digit handling for negative float numbers Thanks a lot to @vgrudenic for research and creating a fix and new test cases.
  • Fixed support for floating NaN
  • Fixed warning of comparing floating point with == Thanks to @HarjitSi for bringing this to attention and again to @vgrudenic (see #37)

v3.1.2

5 years ago
  • Fixed fctprintf(), it must not append/output a terminating null byte. Thanks to @phillipjohnston for bringing this to attention

v3.1.1

5 years ago
  • Replaced the internal strlen() 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.
  • Added more test cases

v3.1.0

5 years ago
  • Removed the new 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.
  • Small performance update, check flags outside the loops (a modern compiler should have taken care of this anyway)

v3.0.0

5 years ago
  • Added the possibility to include an optional config file
  • Added the PRINTF_OVERRIDE_LIBC option to avoid possible LIBC conflicts
  • Updated the catch2 framework to 2.4.2
  • Other small fixes

v2.6.0

5 years ago
  • Fixed hash precision for integer values
  • Added hash flag support for %b specifier

v2.5.2

5 years ago

Several important fixes:

  • Fixed broken right-padding in _ftoa()
  • Fixed negative argument precision handling
  • Fixed zero precision and zero value hash problem. This could cause a buffer out of bounds write access in case of something like printf("% .0d", 0)
  • Ignore 0-flag for integers if precision is specified

Thanks a lot to @wm4 for bringing these issues to attention.

v2.5.1

5 years ago
  • Fixed floating point precision limit
  • Fixed trailing field width in itoa conversion (thanks to @johnruttenberg for the patch)