If any of the files read by __git_eread have \r\n line endings, read will only strip \n, leaving \r. This results in an ugly prompt, where instead of user@pc MINGW64 /path/to/repo (BARE:master) the last parenthesis is printed over the beginning of the prompt like )ser@pc MINGW64 /path/to/repo (BARE:master Signed-off-by: Robert Abel <rabel@xxxxxxxxxxxxx> --- contrib/completion/git-prompt.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh index c6cbef38c2..71a64e7959 100644 --- a/contrib/completion/git-prompt.sh +++ b/contrib/completion/git-prompt.sh @@ -282,7 +282,7 @@ __git_eread () { local f="$1" shift - test -r "$f" && read "$@" <"$f" + test -r "$f" && read "$@" <"$f" && export $@="${!@%$'\r'}" } # __git_ps1 accepts 0 or 1 arguments (i.e., format string) -- 2.13.0.windows.1