These commands read list of paths from their standard input under the --stdin option (in order to avoid busting limit on the length of the command line). When they are using text input mode (i.e. line_termination is set to '\n'), we should try to be more friendly to our DOSsy friends and accept lines with CRLF endings. It is tempting to lift this logic to strbuf_getline() and not introduce a separate strbuf_getline_crlf(), but that can lead to silent misconversion. Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> --- builtin/check-attr.c | 4 +++- builtin/check-ignore.c | 5 ++++- builtin/checkout-index.c | 4 +++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/builtin/check-attr.c b/builtin/check-attr.c index 265c9ba..4c44d8f 100644 --- a/builtin/check-attr.c +++ b/builtin/check-attr.c @@ -77,7 +77,9 @@ static void check_attr_stdin_paths(const char *prefix, int cnt, strbuf_init(&buf, 0); strbuf_init(&nbuf, 0); - while (strbuf_getline(&buf, stdin, line_termination) != EOF) { + while ((line_termination + ? strbuf_getline_crlf(&buf, stdin) + : strbuf_getline(&buf, stdin, '\0')) != EOF) { if (line_termination && buf.buf[0] == '"') { strbuf_reset(&nbuf); if (unquote_c_style(&nbuf, buf.buf, NULL)) diff --git a/builtin/check-ignore.c b/builtin/check-ignore.c index 43f3617..862ced1 100644 --- a/builtin/check-ignore.c +++ b/builtin/check-ignore.c @@ -122,7 +122,10 @@ static int check_ignore_stdin_paths(struct dir_struct *dir, const char *prefix) strbuf_init(&buf, 0); strbuf_init(&nbuf, 0); - while (strbuf_getline(&buf, stdin, line_termination) != EOF) { + + while ((line_termination + ? strbuf_getline_crlf(&buf, stdin) + : strbuf_getline(&buf, stdin, '\0')) != EOF) { if (line_termination && buf.buf[0] == '"') { strbuf_reset(&nbuf); if (unquote_c_style(&nbuf, buf.buf, NULL)) diff --git a/builtin/checkout-index.c b/builtin/checkout-index.c index 8028c37..27d65f2 100644 --- a/builtin/checkout-index.c +++ b/builtin/checkout-index.c @@ -258,7 +258,9 @@ int cmd_checkout_index(int argc, const char **argv, const char *prefix) if (all) die("git checkout-index: don't mix '--all' and '--stdin'"); - while (strbuf_getline(&buf, stdin, line_termination) != EOF) { + while ((line_termination + ? strbuf_getline_crlf(&buf, stdin) + : strbuf_getline(&buf, stdin, '\0')) != EOF) { char *p; if (line_termination && buf.buf[0] == '"') { strbuf_reset(&nbuf); -- 2.7.0-rc1-83-ga8b6b9e -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html