path: root/contrib/completion/
diff options
authorRobert Abel <>2017-12-05 23:39:12 (GMT)
committerJunio C Hamano <>2017-12-06 18:08:13 (GMT)
commit041fe8fc83770f95b09db4aa9d9b3783789eab08 (patch)
tree71992c4e864c96b6c98b7d6a6279c96f02690123 /contrib/completion/
parent5501f500b22116166c892d632382c9d497da822c (diff)
git-prompt: fix reading files with windows line endings
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 This patch fixes the issue by changing the internal field separator variable IFS to $'\r\n' before using the read builtin command. Note that ANSI-C Quoting/POSIX Quoting ($'...') is supported by bash as well as zsh, which are the current targets of git-prompt, cf. contrib/completion/ Signed-off-by: Robert Abel <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'contrib/completion/')
1 files changed, 1 insertions, 1 deletions
diff --git a/contrib/completion/ b/contrib/completion/
index 41a4719..983e419 100644
--- a/contrib/completion/
+++ b/contrib/completion/
@@ -283,7 +283,7 @@ __git_ps1_colorize_gitstring ()
# variable, in that order.
__git_eread ()
- test -r "$1" && read "$2" <"$1"
+ test -r "$1" && IFS=$'\r\n' read "$2" <"$1"
# __git_ps1 accepts 0 or 1 arguments (i.e., format string)