egrep has been deprecated in favor of grep -E for a long time, and the next grep release (3.8 or 4.0) will print a warning of egrep is used. Stop using egrep so we won't see the warning.
Some non-POSIX grep implementations does not support -E option, so for test_summary and warn_summary we prefer grep -E, but fallback to egrep if grep -E does not work. For check_GNU_style.sh, I think it is only used by developers so hard coding grep -E is OK. contrib/ChangeLog: * check_GNU_style.sh: Use grep -E instead of egrep. * test_summary: Use grep -E instead of egrep if it works. * warn_summary: Likewise. --- contrib/check_GNU_style.sh | 10 +++++----- contrib/test_summary | 13 ++++++++++++- contrib/warn_summary | 13 ++++++++++++- 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/contrib/check_GNU_style.sh b/contrib/check_GNU_style.sh index fb7494661ee..535be65f063 100755 --- a/contrib/check_GNU_style.sh +++ b/contrib/check_GNU_style.sh @@ -113,7 +113,7 @@ g (){ local found=false cat $inp \ - | egrep $color -- "$arg" \ + | grep -E $color -- "$arg" \ > "$tmp" && found=true if $found; then @@ -130,8 +130,8 @@ ag (){ local found=false cat $inp \ - | egrep $color -- "$arg1" \ - | egrep $color -- "$arg2" \ + | grep -E $color -- "$arg1" \ + | grep -E $color -- "$arg2" \ > "$tmp" && found=true if $found; then @@ -148,8 +148,8 @@ vg (){ local found=false cat $inp \ - | egrep -v -- "$varg" \ - | egrep $color -- "$arg" \ + | grep -E -v -- "$varg" \ + | grep -E $color -- "$arg" \ > "$tmp" && found=true if $found; then diff --git a/contrib/test_summary b/contrib/test_summary index 5760b053ec2..f17bf54f8ec 100755 --- a/contrib/test_summary +++ b/contrib/test_summary @@ -54,6 +54,17 @@ if test -z "$AWK" ; then done fi +# Prefer "grep -E" which should work with POSIX-conform grep, but fallback +# to "egrep" (which is deprecated for a long time) if grep does not support +# -E. +if test -z "$EGREP" ; then + if echo a | grep -E '(a|b)' > /dev/null 2> /dev/null; then + EGREP="grep -E" + else + EGREP="egrep" + fi +fi + : ${filesuffix=}; export filesuffix : ${move=true}; export move : ${forcemail=false}; export forcemail @@ -77,7 +88,7 @@ for file in $files; do { $anychange || anychange=`diff $file.sent $file 2>/dev/null | if test ! -f $file.sent || - egrep '^[<>] (XPASS|FAIL)' >/dev/null; then + $EGREP '^[<>] (XPASS|FAIL)' >/dev/null; then echo true else echo false diff --git a/contrib/warn_summary b/contrib/warn_summary index d4c8b6cdb19..afa11802ee1 100755 --- a/contrib/warn_summary +++ b/contrib/warn_summary @@ -57,7 +57,7 @@ subdirectoryFilter() else if test "$filter" = nosub ; then # Omit all subdirectories. - egrep -v '/gcc/(ch|cp|f|fortran|ada|intl|fixinc)/' + $EGREP -v '/gcc/(ch|cp|f|fortran|ada|intl|fixinc)/' else # Pass through only subdir $filter. grep "/gcc/$filter/" @@ -155,6 +155,17 @@ if test -z "$AWK" ; then done fi +# Prefer "grep -E" which should work with POSIX-conform grep, but fallback +# to "egrep" (which is deprecated for a long time) if grep does not support +# -E. +if test -z "$EGREP" ; then + if echo a | grep -E '(a|b)' > /dev/null 2> /dev/null; then + EGREP="grep -E" + else + EGREP="egrep" + fi +fi + # Parse command line arguments. while test -n "$1" ; do case "$1" in -- 2.36.1