• Joris Peeraer's avatar
    py/mpprint: Fix length calculation for strings with precision-modifier. · 5020b14d
    Joris Peeraer authored
    Two issues are tackled:
    
    1. The calculation of the correct length to print is fixed to treat the
       precision as a maximum length instead as the exact length.
       This is done for both qstr (%q) and for regular str (%s).
    
    2. Fix the incorrect use of mp_printf("%.*s") to mp_print_strn().
    
       Because of the fix of above issue, some testcases that would print
       an embedded null-byte (^@ in test-output) would now fail.
       The bug here is that "%s" was used to print null-bytes. Instead,
       mp_print_strn is used to make sure all bytes are outputted and the
       exact length is respected.
    
    Test-cases are added for both %s and %q with a combination of precision
    and padding specifiers.
    5020b14d
mpprint.c 17.5 KB