Version 5.3.0: Cleanup, MISRA rules, MSVC-style Inn specifiers
Pre-release
Pre-release
Changes since v5.2.0:
API and feature-set
- #51 : Now optionally supporting MSVC-style specific-size specifiers:
I8
,I16
,I32
,I64
(e.g.%I64d
or%I32u
). These are not part of the C standard, but they are convenient and appropriate for size-specific types likeint64_t
oruint32_t
. A preprocessor (and CMake) option controls whether or not this support is included in the library - and it defaults to OFF for C standard compliance. - #89 : Now using the same parameter names in
printf.h
as defined in the C standard (the parameter _types_were already standard-compliant, this is merely a cosmetic change). - #90 : Doyxgen comment improvements in
printf.h
.
Build configuration
- The previous version, 5.2.0 was unfortunately released with an invalid version number (it was still 5.1.0); this time the version is set correctly in the
CMakeLists.txt
file.
Other changes
- #74 : All functions in
printf.c
without declarations inprintf.h
are now declared static, and should not be symbols exported by the compiled object file. - Now Commenting-out additional code when
PRINTF_EXPONENTIAL_SPECIFIERS
is disabled. - #77 : Applied several MISRA coding guidelines rules. The
printf()
-family functions themselves are not in line with the MISRA guidelines, but this can't be helped, since they must conform to the standard library signatures. - #87 : Avoiding potential narrowing-conversion errors due to the
int
return type ofprintf()
-family function vs thesize_t
type of the buffer range. - Various purely-internal changes (#88, #91
Testing code
- #85 : No longer trying (and failing) to build the test suite when library function names are set to alias the standard library function names (since they conflict with catch).
Caveats
- Still no special handling for denormals.