strip pipe arguments from test options
[barcat.git] / t / regress.t
index 5911e256e02b219f3bc6d4e483164d5c3cb9c514..508d3617bc7e6fe7c7562aed1c54f70745649426 100755 (executable)
@@ -35,11 +35,17 @@ do
 
        set -- barcat
        [ -r "$input" ] && set -- "$@" "$input"
-       case "$name" in *\ -*) set -- "$@" -"${name#* -}";; esac
        case "$name" in
-               *' ?'*) set -- sh -c "\$0 \$1 | test \$\? = ${name#* \?}" "$@";;
-               *' |'*) set -- sh -c "\$0 \$1 | ${name#* |}" "$@";;
-               *)      set -- "$1" $2 $3
+               *\ -*)
+                       args="${name#* -}"
+                       set -- "$@" -"${args% [?|]*}"
+                       ;;
+       esac
+       case "$name" in
+               *' ?' ) set -- sh -c "\$0 \$@ 2>/dev/null" "$@";;
+               *' ?'*) set -- sh -c "\$0 \$@ | test \$\? = ${name#* \?}" "$@";;
+               *' |'*) set -- sh -c "\$0 \$@ | ${name#* |}" "$@";;
+               *)      eval set -- "$1" $2 $3
        esac
 
        if test -n "$regenerate"