From ae2b0d2ddca458eb282bb0458987e75e1875a659 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Sat, 7 Jan 2012 20:55:10 +0100 Subject: tests: more automated quote adjustment Relax initial regexp to match more instances, but add a filter to avoid some invalid conversions. Run this: git grep -l "\`[^']*'" tests | xargs perl -pi -e '$q=q"'\''";' \ -e '$q="$q\\$q$q"; /(= ?\`|\`expr|\`echo|\Q$q\E)/ and next;' \ -e ' s/\`([^'\''"]*?'\'')/'\''$1/g' The last disjunct in the above (...) filter is to exempt any line that contains this string: '\'' With quoting like that, converting a ` to ' is likely to cause trouble, so we'll handle those manually. Here are three examples where the exemption is required: *': `link-to-dir/'\'': hard link not allowed for directory'*) ;; printf 'creating file `%s'\''\n' $f 'mv: inter-device move failed: `%s'\'' to `%s'\'';'\ --- tests/misc/stdbuf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests/misc/stdbuf') diff --git a/tests/misc/stdbuf b/tests/misc/stdbuf index 99bb24300..bf4edc179 100755 --- a/tests/misc/stdbuf +++ b/tests/misc/stdbuf @@ -96,7 +96,7 @@ retry_delay_ stdbuf_unbuffer .1 6 || fail=1 # One could remove the need for dd (used to close the fifo to get uniq to quit # early), if head -n1 read stdin char by char. Note uniq | head -c2 doesn't # suffice due to the buffering implicit in the pipe. sed currently does read -# stdin char by char, so we can test with 'sed 1q`. However I'm wary about +# stdin char by char, so we can test with 'sed 1q'. However I'm wary about # adding this dependency on a program outside of coreutils. # printf '2\n' > exp # printf '1\n2\n' | (stdbuf -i0 sed 1q >/dev/null; cat) > out -- cgit v1.2.3-54-g00ecf