Skip to content
Snippets Groups Projects
Select Git revision
  • benchmark-tools
  • postgres-lambda
  • master default
  • REL9_4_25
  • REL9_5_20
  • REL9_6_16
  • REL_10_11
  • REL_11_6
  • REL_12_1
  • REL_12_0
  • REL_12_RC1
  • REL_12_BETA4
  • REL9_4_24
  • REL9_5_19
  • REL9_6_15
  • REL_10_10
  • REL_11_5
  • REL_12_BETA3
  • REL9_4_23
  • REL9_5_18
  • REL9_6_14
  • REL_10_9
  • REL_11_4
23 results

stringinfo.c

  • Tom Lane's avatar
    54cd4f04
    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
    History
    Work around a subtle portability problem in use of printf %s format.
    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".