revision: small readability improvement for reading from stdin

The code that reads lines from standard input manually compares whether
the read line matches "--", which is a bit awkward to read. Furthermore,
we're about to extend the code to also support reading pseudo-options
via standard input, requiring more elaborate handling of lines with a
leading dash.

Refactor the code by hoisting out the check for "--" outside of the
block that checks for a leading dash.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Patrick Steinhardt 2023-06-15 16:39:55 +02:00 committed by Junio C Hamano
parent cc8045018d
commit af37a209ad

View File

@ -2795,16 +2795,17 @@ static void read_revisions_from_stdin(struct rev_info *revs,
strbuf_init(&sb, 1000);
while (strbuf_getline(&sb, stdin) != EOF) {
int len = sb.len;
if (!len)
if (!sb.len)
break;
if (!strcmp(sb.buf, "--")) {
seen_dashdash = 1;
break;
if (sb.buf[0] == '-') {
if (len == 2 && sb.buf[1] == '-') {
seen_dashdash = 1;
break;
}
die("options not supported in --stdin mode");
}
if (sb.buf[0] == '-')
die("options not supported in --stdin mode");
if (handle_revision_arg(sb.buf, revs, 0,
REVARG_CANNOT_BE_FILENAME))
die("bad revision '%s'", sb.buf);