public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc(refs/users/xry111/heads/no-egrep-v2)] contrib: use grep -E instead of egrep
@ 2022-06-25 4:48 Xi Ruoyao
0 siblings, 0 replies; only message in thread
From: Xi Ruoyao @ 2022-06-25 4:48 UTC (permalink / raw)
To: gcc-cvs
https://gcc.gnu.org/g:ff60381b198e71257581f94ee98ccbe872ebc8dd
commit ff60381b198e71257581f94ee98ccbe872ebc8dd
Author: Xi Ruoyao <xry111@xry111.site>
Date: Fri Jun 24 14:39:35 2022 +0800
contrib: use grep -E instead of egrep
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.
Diff:
---
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
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-06-25 4:48 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-25 4:48 [gcc(refs/users/xry111/heads/no-egrep-v2)] contrib: use grep -E instead of egrep Xi Ruoyao
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).