diff options
-rwxr-xr-x | cppawk | 31 |
1 files changed, 17 insertions, 14 deletions
@@ -154,25 +154,28 @@ done awk="command $(quote "$awk")" prepro="command $(quote "$prepro")" -trap 'rm -f $tmp_file' EXIT INT TERM - if [ -n "$awk_file" ] ; then - tmp_file=$(mktemp) awk_file_dir=$(dirname "$awk_file") - $delhashbang "$awk_file" | \ - eval "$prepro $incopt\"$awk_file_dir\" $prepro_opts -" | \ - collapse > $tmp_file - [ $prepro_only ] \ - && cat $tmp_file \ - || eval "$awk $awk_opts -f $tmp_file -- \"\$@\"" + if [ $prepro_only ] ; then + $delhashbang "$awk_file" \ + | eval "$prepro $incopt\"$awk_file_dir\" $prepro_opts - | collapse" + else + trap 'rm -f $tmp_file' EXIT INT TERM + tmp_file=$(mktemp) + $delhashbang "$awk_file" \ + | eval "$prepro $incopt\"$awk_file_dir\" $prepro_opts - | collapse" \ + > $tmp_file + eval "$awk $awk_opts -f $tmp_file -- \"\$@\"" + fi elif [ $# -gt 0 ] ; then - tmp_file=$(mktemp) if [ $prepro_only ] ; then - printf "%s" "$1" | $delhashbang | \ - eval "$prepro $incopt"$(pwd)" $prepro_opts - | collapse" + printf "%s" "$1" | $delhashbang \ + | eval "$prepro $incopt"$(pwd)" $prepro_opts - | collapse" else - printf "%s" "$1" | $delhashbang | \ - eval "$prepro $incopt"$(pwd)" $prepro_opts - | collapse" > $tmp_file + trap 'rm -f $tmp_file' EXIT INT TERM + tmp_file=$(mktemp) + printf "%s" "$1" | $delhashbang \ + | eval "$prepro $incopt"$(pwd)" $prepro_opts - | collapse" > $tmp_file shift eval "$awk $awk_opts -f $tmp_file -- \"\$@\"" fi |