Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F147471262
D48873.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
D48873.diff
View Options
diff --git a/contrib/netbsd-tests/usr.bin/grep/t_grep.sh b/contrib/netbsd-tests/usr.bin/grep/t_grep.sh
--- a/contrib/netbsd-tests/usr.bin/grep/t_grep.sh
+++ b/contrib/netbsd-tests/usr.bin/grep/t_grep.sh
@@ -221,8 +221,6 @@
}
zgrep_combined_flags_body()
{
- atf_expect_fail "known but unsolved zgrep wrapper script regression"
-
echo 'foo bar' > test
atf_check -o inline:"foo bar\n" zgrep -we foo test
@@ -278,8 +276,6 @@
}
zgrep_multiple_eflags_body()
{
- atf_expect_fail "known but unsolved zgrep wrapper script regression"
-
echo foobar > test
atf_check -o inline:"foobar\n" zgrep -e foo -e xxx test
@@ -940,6 +936,25 @@
echo bar > test2
atf_check -s exit:1 zgrep foo test1 test2
}
+
+atf_test_case zgrep_recursive
+zgrep_multiple_files_head()
+{
+ atf_set "descr" "Checks for zgrep wrapper recursion"
+}
+zgrep_recursive_body()
+{
+ atf_expect_fail "unimplemented zgrep wrapper script functionality"
+
+ mkdir -p tester1
+ echo foobar > tester1/test
+ atf_check -o inline:"tester1/test:foobar\n" zgrep -r foo tester1
+
+ mkdir -p tester2
+ echo foobar > tester2/test1
+ echo foobar > tester2/test2
+ atf_check -o inline:"tester2/test1:foobar\ntester2/test2:foobar\n" zgrep -r foo tester2
+}
# End FreeBSD
atf_init_test_cases()
@@ -996,5 +1011,6 @@
atf_add_test_case mflag
atf_add_test_case mflag_trail_ctx
atf_add_test_case zgrep_multiple_files
+ atf_add_test_case zgrep_recursive
# End FreeBSD
}
diff --git a/usr.bin/grep/zgrep.sh b/usr.bin/grep/zgrep.sh
--- a/usr.bin/grep/zgrep.sh
+++ b/usr.bin/grep/zgrep.sh
@@ -74,7 +74,7 @@
while [ $# -gt 0 -a ${endofopts} -eq 0 ]
do
case $1 in
- # from GNU grep-2.5.1 -- keep in sync!
+ # from GNU grep-2.6.0 -- keep in sync!
--)
shift
endofopts=1
@@ -85,6 +85,9 @@
shift
;;
--regexp=*)
+ if [ ${pattern_found} -ne 0 ]; then
+ grep_args="${grep_args} -e ${pattern}"
+ fi
pattern="${1#--regexp=}"
pattern_found=1
shift
@@ -100,20 +103,31 @@
grep_args="${grep_args} $1"
shift
;;
- -*[ABCDXdefm])
+ -[EFGHILOSUVabchilnopqsuvwxyz]*)
+ post="${1#-?}"
+ pre=${1%${post}}
+ grep_args="${grep_args} ${pre}"
+ shift
+ # Put back partial arg
+ set -- "-${post}" $*
+ ;;
+ -[ABCDdefm])
if [ $# -lt 2 ]
then
echo "${prg}: missing argument for $1 flag" >&2
exit 1
fi
case $1 in
- -*e)
+ -e)
+ if [ ${pattern_found} -ne 0 ]; then
+ grep_args="${grep_args} -e ${pattern}"
+ fi
pattern="$2"
pattern_found=1
shift 2
continue
;;
- -*f)
+ -f)
pattern_file=1
;;
*)
@@ -122,6 +136,27 @@
grep_args="${grep_args} $1 $2"
shift 2
;;
+ -[ABCDdefm]*)
+ post="${1#-e}"
+ case ${1} in
+ -e*)
+ if [ ${pattern_found} -ne 0 ]; then
+ grep_args="${grep_args} -e ${pattern}"
+ fi
+ pattern="${post}"
+ pattern_found=1
+ shift
+ continue
+ ;;
+ -f*)
+ pattern_file=1
+ ;;
+ *)
+ ;;
+ esac
+ grep_args="${grep_args} ${post}"
+ shift
+ ;;
-)
hyphen=1
shift
@@ -130,7 +165,7 @@
echo "${prg}: the ${1} flag is not currently supported" >&2
exit 1
;;
- -*)
+ -?)
grep_args="${grep_args} $1"
shift
;;
@@ -156,12 +191,15 @@
pattern_found=1
fi
+# Clean up possible leading blank
+grep_args="${grep_args# }"
+
# call grep ...
if [ $# -lt 1 ]
then
# ... on stdin
if [ ${pattern_file} -eq 0 ]; then
- ${cattool} ${catargs} - | ${grep} ${grep_args} -- "${pattern}" -
+ ${cattool} ${catargs} - | ${grep} ${grep_args} -e "${pattern}" -- -
else
${cattool} ${catargs} - | ${grep} ${grep_args} -- -
fi
@@ -176,7 +214,7 @@
for file; do
if [ ${pattern_file} -eq 0 ]; then
${cattool} ${catargs} -- "${file}" |
- ${grep} --label="${file}" ${grep_args} -- "${pattern}" -
+ ${grep} --label="${file}" ${grep_args} -e "${pattern}" -- -
else
${cattool} ${catargs} -- "${file}" |
${grep} --label="${file}" ${grep_args} -- -
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Mar 12, 6:45 AM (16 h, 6 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29570336
Default Alt Text
D48873.diff (3 KB)
Attached To
Mode
D48873: Fix remaining zgrep(1) wrapper script regressions
Attached
Detach File
Event Timeline
Log In to Comment