[PATCH va/i18n-even-more] rebase-interactive: trim leading whitespace from progress count
- From
Johannes Sixt <j6t@kdbg.org>
- Date
- Jul 28, 2016, 17:47 UTC
- Message-ID
- <fa512576-487e-9b9c-3ada-7f0d9b135e4b@kdbg.org>
Interactive rebase uses 'wc -l' to write the current patch number in a progress report. Some implementations of 'wc -l' produce spaces before the number, leading to ugly output such as
Rebasing ( 3/8)
Remove the spaces using a trivial arithmetic evaluation.
Before 9588c52 (i18n: rebase-interactive: mark strings for translation) this was not a problem because printf was used to generate the text. Since that commit, the count is interpolated directly from a shell variable into the text, where the spaces remain. The total number of patches does not have this problem even though it is interpolated from a shell variable in the same manner, because the variable is set by an arithmetic evaluation.
Later in the script, there is a virtually identical case where leading spaces are trimmed, but it uses a pattern substitution:
todocount=$(git stripspace --strip-comments <"$todo" | wc -l) todocount=${todocount##* }
I did not choose this idiom because it adds a line of code, and there is already an arithmetic evaluation in the vicinity of the line that is changed here.
Signed-off-by: Johannes Sixt <j6t@kdbg.org> --- git-rebase--interactive.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index ded4595..e2da524 100644 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -121,7 +121,7 @@ mark_action_done () { sed -e 1q < "$todo" >> "$done" sed -e 1d < "$todo" >> "$todo".new mv -f "$todo".new "$todo" - new_count=$(git stripspace --strip-comments <"$done" | wc -l) + new_count=$(( $(git stripspace --strip-comments <"$done" | wc -l) )) echo $new_count >"$msgnum" total=$(($new_count + $(git stripspace --strip-comments <"$todo" | wc -l))) echo $total >"$end"
-- 2.9.0.443.ga8520ad