[PATCH] contrib/subtree: portability fix for string printing
- From
Danny Lin <danny0838@gmail.com>
- Date
- May 8, 2015, 00:56 UTC
- Message-ID
- <1431046619-2340-1-git-send-email-danny0838@gmail.com>
- In-Reply-To
- <xmqqmw1gp7aa.fsf@gitster.dls.corp.google.com>
Replace echo using printf in debug() and say() for better portability.
Also re-wrap previous 'say -n "$str<CR>"' using a new function progress() to prevent CR chars included in the source code, which could be mal-processed in some shells. For example, MsysGit trims CR before executing a shell script file in order to make it work right on Windows even if it uses CRLF as linefeeds.
Signed-off-by: Danny Lin <danny0838@gmail.com> --- contrib/subtree/git-subtree.sh | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/contrib/subtree/git-subtree.sh b/contrib/subtree/git-subtree.sh index fa1a583..d4dae7a 100755 --- a/contrib/subtree/git-subtree.sh +++ b/contrib/subtree/git-subtree.sh @@ -51,14 +51,21 @@ prefix= debug() { if [ -n "$debug" ]; then - echo "$@" >&2 + printf "%s\n" "$*" >&2 fi } say() { if [ -z "$quiet" ]; then - echo "$@" >&2 + printf "%s\n" "$*" >&2 + fi +} + +progress() +{ + if [ -z "$quiet" ]; then + printf "%s\r" "$*" >&2 fi } @@ -599,7 +606,7 @@ cmd_split() eval "$grl" | while read rev parents; do revcount=$(($revcount + 1)) - say -n "$revcount/$revmax ($createcount) " + progress "$revcount/$revmax ($createcount)" debug "Processing commit: $rev" exists=$(cache_get $rev) if [ -n "$exists" ]; then
-- 2.3.7.windows.1 Previous patch had a flaw, revised.