On Wed, May 6, 2015 at 3:49 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Danny Lin <danny0838@xxxxxxxxx> writes: > >> cmd_split() prints a CR char by assigning a variable >> with a literal CR in the source code, which could be >> trimmed or mis-processed in some terminals. Replace >> with $(printf '\r') to fix it. For future readers of the patch who haven't followed the email discussion, it might be a good idea to explain the problem in more detail. Saying merely "could be trimmed or mis-processed in some terminals" doesn't give much for people to latch onto if they want to understand the specific problem. Concrete information would help. >> Signed-off-by: Danny Lin <danny0838@xxxxxxxxx> >> --- >> diff --git a/contrib/subtree/git-subtree.sh b/contrib/subtree/git-subtree.sh >> index fa1a583..3a581fc 100755 >> --- a/contrib/subtree/git-subtree.sh >> +++ b/contrib/subtree/git-subtree.sh >> @@ -596,10 +596,11 @@ cmd_split() >> revmax=$(eval "$grl" | wc -l) >> revcount=0 >> createcount=0 >> + CR=$(printf '\r') >> eval "$grl" | >> while read rev parents; do >> revcount=$(($revcount + 1)) >> - say -n "$revcount/$revmax ($createcount) >> " >> + say -n "$revcount/$revmax ($createcount)$CR" > > Interesting. I would have expected, especially this is a portability-fix > change, that the change would be a single liner > > - say -n ... > + printf "%s\r" "$revcount/$revmax ($createcount)" > > that does not touch any other line. Unfortunately, that solution does not respect the $quiet flag like say() does. I had envisioned the patch as reimplementing say() using printf rather than echo, and having say() itself either recognizing the -n flag or just update callers to specify \n when they want it (which is probably the cleaner of the two approaches). > >> debug "Processing commit: $rev" >> exists=$(cache_get $rev) >> if [ -n "$exists" ]; then > -- -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html