• Tom Lane's avatar
    Work around a subtle portability problem in use of printf %s format. · 54cd4f04
    Tom Lane authored
    Depending on which spec you read, field widths and precisions in %s may be
    counted either in bytes or characters.  Our code was assuming bytes, which
    is wrong at least for glibc's implementation, and in any case libc might
    have a different idea of the prevailing encoding than we do.  Hence, for
    portable results we must avoid using anything more complex than just "%s"
    unless the string to be printed is known to be all-ASCII.
    
    This patch fixes the cases I could find, including the psql formatting
    failure reported by Hernan Gonzalez.  In HEAD only, I also added comments
    to some places where it appears safe to continue using "%.*s".
    54cd4f04
scansup.c 4.89 KB