In this thread https://sourceforge.net/p/mingw-w64/bugs/459/
there is a suggested fix for print with whole numbers

The builtin __mingw_printf is inconsistent with printf on %a format.
> I think __mingw_printf is wrong, because obviously 1.0 != 0x0p-63.


vacaboja opened an issue on msys2 for this
https://github.com/msys2/msys2/issues/35
and suggested a fix of removing the case to int
here is a patch that does just that.

Please Review

diff --git a/mingw-w64-crt/stdio/mingw_pformat.c
b/mingw-w64-crt/stdio/mingw_pformat.c
index 445320c0..3c7f0833 100644
--- a/mingw-w64-crt/stdio/mingw_pformat.c
+++ b/mingw-w64-crt/stdio/mingw_pformat.c
@@ -2113,7 +2113,7 @@ void __pformat_emit_xfloat( __pformat_fpreg_t value,
__pformat_t *stream )
     /* taking the rightmost digit in each pass...
      */
     int c = value.__pformat_fpreg_mantissa & 0xF;
-    if( c == (int) value.__pformat_fpreg_mantissa)
+    if( c == value.__pformat_fpreg_mantissa)
     {
       /* inserting the radix point, when we reach the last,
        * (i.e. the most significant digit), unless we found no
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to