summaryrefslogtreecommitdiff
blob: b31cc061db6f9b8e7b4efc9a0594c39dc975f3cf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
bzgrep uses !/bin/sh but then uses the bashism ${var//} so replace those
with calls to sed so POSIX shells work

http://bugs.gentoo.org/193365

--- bzgrep
+++ bzgrep
@@ -63,10 +63,9 @@
     bzip2 -cdfq "$i" | $grep $opt "$pat"
     r=$?
   else
-    j=${i//\\/\\\\}
-    j=${j//|/\\|}
-    j=${j//&/\\&}
-    j=`printf "%s" "$j" | tr '\n' ' '`
+    # the backslashes here are doubled up as we have to escape each one for the
+    # shell and then escape each one for the sed expression
+    j=`printf "%s" "${i}" | sed -e 's:\\\\:\\\\\\\\:g' -e 's:[|]:\\\\|:g' -e 's:[&]:\\\\&:g' | tr '\n' ' '`
     bzip2 -cdfq "$i" | $grep $opt "$pat" | sed "s|^|${j}:|"
     r=$?
   fi