From 075173185d263726789bd69cd829073e066126ce Mon Sep 17 00:00:00 2001 From: r4 Date: Sat, 21 May 2022 19:45:06 +0200 Subject: [PATCH] fix bash compatibility and remove non-standard echo --- cscript | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/cscript b/cscript index 27ed210..8b6bb73 100755 --- a/cscript +++ b/cscript @@ -18,13 +18,13 @@ at_args="" args="" arg() { if [ -z "$shebang_mode" ] && [ -n "$at_args" ]; then - args="$args\n$1" + args="$(printf "%s\n%s" "$args" "$1")" elif [ "$shebang_mode" = "next_is_file" ]; then basedir="$(dirname "$1")" - files="$files\n$(basename "$1")" + files="$(printf "%s\n%s" "$files" "$(basename "$1")")" shebang_mode=1 elif [ -n "$shebang_mode" ]; then - args="$args\n$1" + args="$(printf "%s\n%s" "$args" "$1")" else case "$1" in # Pass through following args @@ -41,11 +41,11 @@ arg() { ;; # Add option -*) - opts="$opts\n$1" + opts="$(printf "%s\n%s" "$opts" "$1")" ;; # Add source file *) - files="$files\n$1" + files="$(printf "%s\n%s" "$files" "$1")" ;; esac fi @@ -54,9 +54,9 @@ for a in "$@"; do arg "$a" done # Remove empty lines -files="$(echo -n "$files" | grep '.')" -opts="$(echo -n "$opts" | grep '.')" -args="$(echo -n "$args" | grep '.')" +files="$(printf "%s" "$files" | grep '.')" +opts="$(printf "%s" "$opts" | grep '.')" +args="$(printf "%s" "$args" | grep '.')" cd "$basedir" @@ -72,16 +72,16 @@ EOF # Compile and run C program cleanup() { - echo -n "$files" | xargs -d'\n' sed "s@^//#!@#!@g" -i + printf "%s" "$files" | xargs -d'\n' sed "s@^//#!@#!@g" -i rm -f "$tmpfile" } tmpfile="$(mktemp -t "cscript.XXXXXXXXXX")" -echo -n "$files" | xargs -d'\n' sed "s@^#!@//#!@g" -i +printf "%s" "$files" | xargs -d'\n' sed "s@^#!@//#!@g" -i trap 'cleanup; exit 130' INT -if ! echo -n "$files\n$opts" | xargs -d'\n' cc -Wall -pedantic -o "$tmpfile"; then +if ! printf "%s\n%s" "$files" "$opts" | xargs -d'\n' cc -Wall -pedantic -o "$tmpfile"; then cleanup exit 1 fi -echo -n "$args" | xargs -d'\n' "$tmpfile" +printf "%s" "$args" | xargs -d'\n' "$tmpfile" trap - INT cleanup