grep: Upgrade to version 2.9
Release 2.9 (2011-06-21) [stable]
Release 2.8 (2011-05-13) [stable]
Bug Fixes
===================
1. echo c|grep '[c]' would fail for any c in 0x80..0xff,
and in many locales.
E.g., printf '\xff\n'|grep "$(printf '[\xff]')" || echo FAIL
would print FAIL rather than the required matching line.
[bug introduced in grep-2.6]
2. grep's interpretation of range expression is now more consistent with
that of other tools. [bug present since multi-byte character set
support was introduced in 2.5.2, though the steps needed to reproduce
it changed in grep-2.6]
3. grep erroneously returned with exit status 1 on some memory allocation
failure. [bug present since "the beginning"]
4. grep no longer clobbers heap for an ERE like '(^| )*( |$)'
[bug introduced in grep-2.6]
5. grep is faster on regular expressions that match multibyte characters
in brackets (such as '[áéíóú]').
6. echo c|grep '[c]' would fail for any c in 0x80..0xff, with a uni-byte
encoding for which the byte-to-wide-char mapping is nontrivial. For
example, the ISO-88591 locales are not affected, but ru_RU.KOI8-R is.
[bug introduced in grep-2.6]
7. grep -P no longer aborts when PCRE's backtracking limit is exceeded
Before, echo
aaaaaaaaaaaaaab |grep -P '((a+)*)+$' would abort. Now,
it diagnoses the problem and exits with status 2.