git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[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
Next: Eric Sunshine
Message 1 of 4 in “rebase-interactive: trim leading whitespace from progress count”
  1. rebase-interactive: trim leading whitespace from progress countJohannes Sixt, Jul 28, 2016
  2. Eric SunshineJul 28, 2016
  3. Jakub NarębskiJul 28, 2016
  4. Junio C HamanoJul 28, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.