From: Nikita Leonov <nykyta.leonov@xxxxxxxxx> This commit makes reading process regarding credentials compatible with 'CR/LF' line ending. It makes using git more convenient on systems like Windows. Signed-off-by: Nikita Leonov <nykyta.leonov@xxxxxxxxx> Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx> --- builtin/credential-cache--daemon.c | 4 ++-- builtin/credential-store.c | 2 +- t/t0302-credential-store.sh | 16 ++++++---------- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/builtin/credential-cache--daemon.c b/builtin/credential-cache--daemon.c index c61f123a3b..17664bb0d5 100644 --- a/builtin/credential-cache--daemon.c +++ b/builtin/credential-cache--daemon.c @@ -99,12 +99,12 @@ static int read_request(FILE *fh, struct credential *c, static struct strbuf item = STRBUF_INIT; const char *p; - strbuf_getline_lf(&item, fh); + strbuf_getline(&item, fh); if (!skip_prefix(item.buf, "action=", &p)) return error("client sent bogus action line: %s", item.buf); strbuf_addstr(action, p); - strbuf_getline_lf(&item, fh); + strbuf_getline(&item, fh); if (!skip_prefix(item.buf, "timeout=", &p)) return error("client sent bogus timeout line: %s", item.buf); *timeout = atoi(p); diff --git a/builtin/credential-store.c b/builtin/credential-store.c index 5331ab151a..d4e90b68df 100644 --- a/builtin/credential-store.c +++ b/builtin/credential-store.c @@ -23,7 +23,7 @@ static int parse_credential_file(const char *fn, return found_credential; } - while (strbuf_getline_lf(&line, fh) != EOF) { + while (strbuf_getline(&line, fh) != EOF) { if (!credential_from_url_gently(&entry, line.buf, 1) && entry.username && entry.password && credential_match(c, &entry)) { diff --git a/t/t0302-credential-store.sh b/t/t0302-credential-store.sh index 716bf1af9f..f2c672e4b6 100755 --- a/t/t0302-credential-store.sh +++ b/t/t0302-credential-store.sh @@ -142,7 +142,7 @@ invalid_credential_test "scheme" ://user:pass@xxxxxxxxxxx invalid_credential_test "valid host/path" https://user:pass@ invalid_credential_test "username/password" https://pass@xxxxxxxxxxx -test_expect_success 'get: credentials with DOS line endings are invalid' ' +test_expect_success 'get: credentials with DOS line endings are valid' ' printf "https://user:pass@xxxxxxxxxxx\r\n" >"$HOME/.git-credentials" && check fill store <<-\EOF protocol=https @@ -150,11 +150,9 @@ test_expect_success 'get: credentials with DOS line endings are invalid' ' -- protocol=https host=example.com - username=askpass-username - password=askpass-password + username=user + password=pass -- - askpass: Username for '\''https://example.com'\'': - askpass: Password for '\''https://askpass-username@xxxxxxxxxxx'\'': -- EOF ' @@ -172,7 +170,7 @@ test_expect_success 'get: credentials with path and DOS line endings are valid' EOF ' -test_expect_success 'get: credentials with DOS line endings are invalid if path is relevant' ' +test_expect_success 'get: credentials with DOS line endings are valid if path is relevant' ' printf "https://user:pass@xxxxxxxxxxx/repo.git\r\n" >"$HOME/.git-credentials" && test_config credential.useHttpPath true && check fill store <<-\EOF @@ -181,11 +179,9 @@ test_expect_success 'get: credentials with DOS line endings are invalid if path protocol=https host=example.com path=repo.git - username=askpass-username - password=askpass-password + username=user + password=pass -- - askpass: Username for '\''https://example.com/repo.git'\'': - askpass: Password for '\''https://askpass-username@xxxxxxxxxxx/repo.git'\'': -- EOF ' -- gitgitgadget