X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fmware%2Fformatwr.c;h=7293c4dc7a0b4f624314b83a2de072f0f02ee97b;hb=699476ac2d788ecb8bad9c78b036e81b606b0847;hp=5b2323d84a87eb432869fa0c48272099ebb799d9;hpb=b0630dd5ed56e5a1713411083aee580cee9b6244;p=bertos.git diff --git a/bertos/mware/formatwr.c b/bertos/mware/formatwr.c index 5b2323d8..7293c4dc 100644 --- a/bertos/mware/formatwr.c +++ b/bertos/mware/formatwr.c @@ -106,7 +106,6 @@ /* Maximum precision for floating point values */ typedef long double max_float_t; - #warning FIXME: be sure to fix buffer size below #if CONFIG_FRMWRI_BUFSIZE #define FRMWRI_BUFSIZE CONFIG_FRMWRI_BUFSIZE #else @@ -114,7 +113,7 @@ * space for: sign + all 38 digits + '.' + 6 decimal digits (default) * Use a high value to avoid unexpected buffer overflows. */ - #define FRMWRI_BUFSIZE 100 + #define FRMWRI_BUFSIZE 134 #endif #else #if CONFIG_FRMWRI_BUFSIZE @@ -506,14 +505,21 @@ NEXT_FLAG: { case 'l': case 'L': + #if SIZEOF_SIZE_T == SIZEOF_LONG case 'z': flags.l_L_modifier = true; + #elif SIZEOF_SIZE_T == SIZEOF_INT + flags.l_L_modifier = true; + case 'z': + #endif format++; break; + case 'h': flags.h_modifier = true; format++; break; + } /* @@ -854,10 +860,13 @@ FLOATING_CONVERSION: switch (PGM_READ_CHAR(format)) { case 'l': + #if SIZEOF_SIZE_T == SIZEOF_LONG case 'z': - /* for the 'z' modifier, we make this assumption */ - STATIC_ASSERT(sizeof(size_t) == sizeof(long)); l_modifier = true; + #elif SIZEOF_SIZE_T == SIZEOF_INT + l_modifier = true; + case 'z': + #endif format++; break;