summaryrefslogtreecommitdiff
path: root/system/bzip2/bzip2-1.0.4-POSIX-shell.patch
blob: a5916eaff5e81ff62cce380b4d42f804b0557f51 (plain) (blame)
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