~michel-slm/coreutils

9e67ccd745d08aff1cf9fa2911ec63e7ffd31be4 — Pádraig Brady 8 months ago 76ec516
sort: fix thousands grouping handling on single byte locales

* gl/lib/strnumcmp-in.h (numcompare): After commit v9.0-8-g6cafb122f,
we need to treat characters as signed to avoid invalid comparisons
between negative integers and unsigned characters.
* NEWS: Mention the bug fix.
2 files changed, 7 insertions(+), 2 deletions(-)

M NEWS
M gl/lib/strnumcmp-in.h
M NEWS => NEWS +5 -0
@@ 16,6 16,11 @@ GNU coreutils NEWS                                    -*- outline -*-
  numfmt options like --suffix no longer have an arbitrary 127-byte limit.
  [bug introduced with numfmt in coreutils-8.21]

  sort again handles thousands grouping characters in single-byte locales
  where the grouping character is greater than CHAR_MAX.  For e.g. signed
  character platforms with a 0xA0 (aka &nbsp) grouping character.
  [bug introduced in coreutils-9.1]

  tail no longer mishandles input from files in /proc and /sys file systems,
  on systems with a page size larger than the stdio BUFSIZ.
  [This bug was present in "the beginning".]

M gl/lib/strnumcmp-in.h => gl/lib/strnumcmp-in.h +2 -2
@@ 114,8 114,8 @@ static inline int _GL_ATTRIBUTE_PURE
numcompare (char const *a, char const *b,
            int decimal_point, int thousands_sep)
{
  unsigned char tmpa = *a;
  unsigned char tmpb = *b;
  char tmpa = *a;
  char tmpb = *b;
  int tmp;
  size_t log_a;
  size_t log_b;