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

[PATCH] Fix early wrapping of the command line when using git-prompt.sh

From
Richard Quadling via GitGitGadget <gitgitgadget@gmail.com>
Date
Apr 28, 2025, 12:33 UTC
Message-ID
<pull.1910.git.1745843632085.gitgitgadget@gmail.com>
From: Richard Quadling <RQuadling@GMail.com>

When running git-prompt in Bash, the lack of \001 and \002 causes the command line to wrap early.

The issue is the current \001 and \002 were not themselves escaped and so resulted in binary 0b1 and 0b10 being present, rather than the strings "\001" and "\002".

Signed-off-by: Richard Quadling <RQuadling@GMail.com>
---
    Fix early wrapping of the command line when using git-prompt.sh
    
    When running git-prompt in Bash, the lack of \001 and \002 causes the
    command line to wrap early.
    
    The issue is the current \001 and \002 were not themselves escaped and
    so resulted in binary 0b1 and 0b10 being present, rather than the
    strings "\001" and "\002".
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1910%2Frquadling%2Fmaster-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1910/rquadling/master-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/1910
 contrib/completion/git-prompt.sh | 2 +-
 t/t9903-bash-prompt.sh           | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh
index 6186c474ba7..4a64aca3eda 100644
--- a/contrib/completion/git-prompt.sh
+++ b/contrib/completion/git-prompt.sh
@@ -147,7 +147,7 @@ printf -v __git_printf_supports_v -- '%s' yes >/dev/null 2>&1
 
 # like __git_SOH=$'\001' etc but works also in shells without $'...'
 eval "$(printf '
-	__git_SOH="\001" __git_STX="\002" __git_ESC="\033"
+	__git_SOH="\\001" __git_STX="\\002" __git_ESC="\033"
 	__git_LF="\n" __git_CRLF="\r\n"
 ')"
 
diff --git a/t/t9903-bash-prompt.sh b/t/t9903-bash-prompt.sh
index d667dda654e..fc6fdd36c69 100755
--- a/t/t9903-bash-prompt.sh
+++ b/t/t9903-bash-prompt.sh
@@ -13,10 +13,10 @@ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
 . "$GIT_BUILD_DIR/contrib/completion/git-prompt.sh"
 
 actual="$TRASH_DIRECTORY/actual"
-c_red='\001\e[31m\002'
-c_green='\001\e[32m\002'
-c_lblue='\001\e[1;34m\002'
-c_clear='\001\e[0m\002'
+c_red='\\001\e[31m\\002'
+c_green='\\001\e[32m\\002'
+c_lblue='\\001\e[1;34m\\002'
+c_clear='\\001\e[0m\\002'
 
 test_expect_success 'setup for prompt tests' '
 	git init otherrepo &&

base-commit: f65182a99e545d2f2bc22e6c1c2da192133b16a3
-- 
gitgitgadget
Message 1 of 1 in “Fix early wrapping of the command line when using git-prompt.sh”
  1. Fix early wrapping of the command line when using git-prompt.shRichard Quadling via GitGitGadget, Apr 28, 2025

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.