git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Robert Abel <rabel@robertabel.eu>
To: git@vger.kernel.org
Cc: Robert Abel <rabel@robertabel.eu>
Subject: [PATCH v4 2/2] git-prompt: fix reading files with windows line endings
Date: Wed,  6 Dec 2017 00:39:12 +0100	[thread overview]
Message-ID: <20171205233912.5824-2-rabel@robertabel.eu> (raw)
In-Reply-To: <20171205233912.5824-1-rabel@robertabel.eu>

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/git-prompt.sh.

Signed-off-by: Robert Abel <rabel@robertabel.eu>
---
 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 41a471957a..983e419d2b 100644
--- a/contrib/completion/git-prompt.sh
+++ b/contrib/completion/git-prompt.sh
@@ -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)
-- 
2.13.0.windows.1


  reply	other threads:[~2017-12-05 23:39 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-28 20:18 git-prompt: fix reading files with windows line endings Robert Abel
2017-11-28 20:18 ` [PATCH] " Robert Abel
2017-11-29 14:27   ` Johannes Schindelin
2017-11-29 22:09     ` Robert Abel
2017-11-30  0:21       ` Johannes Schindelin
2017-11-30  6:22         ` Robert Abel
2017-11-30 15:21           ` Johannes Schindelin
2017-11-30 18:01             ` Robert Abel
2017-12-01 10:45               ` Johannes Schindelin
2017-12-01 23:31                 ` [PATCH v2 1/2] git-prompt: make __git_eread intended use explicit Robert Abel
2017-12-01 23:31                   ` [PATCH v2 2/2] git-prompt: fix reading files with windows line endings Robert Abel
2017-12-04 14:18                     ` Johannes Schindelin
2017-12-04 17:58                   ` [PATCH v2 1/2] git-prompt: make __git_eread intended use explicit Junio C Hamano
2017-12-04 22:57                     ` Robert Abel
2017-12-05  0:27                       ` Junio C Hamano
2017-12-05  7:01                         ` Robert Abel
2017-12-05 13:06                           ` Junio C Hamano
2017-12-05 23:37                             ` Robert Abel
2017-12-05 23:39                               ` [PATCH v4 " Robert Abel
2017-12-05 23:39                                 ` Robert Abel [this message]
2017-12-04 23:49                   ` [PATCH v3 " Robert Abel
2017-12-04 23:49                     ` [PATCH v3 2/2] git-prompt: fix reading files with windows line endings Robert Abel
2017-11-30  1:08     ` [PATCH] " SZEDER Gábor
2017-11-30  1:51       ` Johannes Schindelin
2017-11-30 23:45         ` SZEDER Gábor

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171205233912.5824-2-rabel@robertabel.eu \
    --to=rabel@robertabel.eu \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).