On Mon, 27 Jun 2022 at 07:12, Xi Ruoyao <xry...@xry111.site> wrote:
>
> 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

"POSIX-conforming"

> +# to "egrep" (which is deprecated for a long time) if grep does not support

I'd just say "to deprecate egrep" or "to egrep (which is deprecated)".
There's no need to say anything about how long it's been deprecated.


> +# -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

Ditto.

> +# -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
>
>

Reply via email to