>From 0ca1f6d79514189ef8db6e931f285cbaec9789ec Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Mon, 12 May 2014 11:38:28 -0700 Subject: [PATCH] egrep, fgrep: port to Solaris 10 /bin/sh This old shell doesn't grok ${0%/*}; see: http://bugs.gnu.org/17471 * src/Makefile.am (egrep fgrep): Don't assume the shell does substrings. * src/egrep.sh (dir): New var, so that the substring calculation is done only once (which is a small win even with newer shells), and so that the calculation is easier to edit on older shells. --- src/Makefile.am | 7 +++++++ src/egrep.sh | 5 +++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/Makefile.am b/src/Makefile.am index f8c9415..e2c82a4 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -47,7 +47,14 @@ EXTRA_DIST = dosbuf.c egrep.sh egrep fgrep: egrep.sh Makefile $(AM_V_GEN)grep=`echo grep | sed -e '$(transform)'` && \ case $@ in egrep) option=-E;; fgrep) option=-F;; esac && \ + shell_does_substrings='set x/y && d=$${1%/*} && test "$$d" = x' && \ + if $(SHELL) -c "$$shell_does_substrings" 2>/dev/null; then \ + edit_substring='s,X,X,'; \ + else \ + edit_substring='s,\$${0%/\*},`expr "X$$0" : '\''X\\(.*\\)/'\''`,g'; \ + fi && \ sed -e 's|address@hidden@|$(SHELL)|g' \ + -e "$$edit_substring" \ -e "s|address@hidden@|$$grep|g" \ -e "s|address@hidden@|$$option|g" <$(srcdir)/egrep.sh >address@hidden $(AM_V_at)chmod +x address@hidden diff --git a/src/egrep.sh b/src/egrep.sh index f1b4146..1a03d2a 100644 --- a/src/egrep.sh +++ b/src/egrep.sh @@ -2,8 +2,9 @@ grep=grep case $0 in */*) - if test -x "${0%/*}/@grep@"; then - PATH=${0%/*}:$PATH + dir=${0%/*} + if test -x "$dir/@grep@"; then + PATH=$dir:$PATH address@hidden@ fi;; esac -- 1.9.0